Intereting Posts
Пользовательская таксономия пользователей с пользовательским интерфейсом Скрыть тему в списке тем в wp-admin без редактирования файлов ядра Как получить доступ к телу запроса API WP в пользовательском маршруте? Создание виджета или включение коротких кодов в боковой панели Как создать .pot-файлы с помощью POedit? Следующие сообщения Предыдущие сообщения только для стандартного почтового формата WordPress отправляет данные о вашем блоге на WordPress.org или Automattic? сортировать сообщения по алфавитному предложению плагина add_query_vars и add_rewrite_rules Как управлять несколькими проектами wordpress с общей базой кода Где определено расположение темы для главного меню в шаблоне WordPress? Иерархия таксономии / категории теряется при редактировании сообщений Локализация темы WP Пользовательская страница с переменными в url. Хороший URL-адрес с add_rewrite_rule Разместил ли WordPress папку плагина во время обновления?

Могу ли я доверять пользовательскому вводу в wp_redirect ()?

Я делаю небольшой плагин, который делает это:

$Path=$_SERVER['REQUEST_URI']; wp_redirect( 'http://old.example.com'.$Path ); exit; 

Я думаю, что это безопасно, даже если в функции есть пользовательский ввод (запрос uri), в любом случае это должно быть эквивалентно прямому набору old.example.com/malicious_url, правильно?

Solutions Collecting From Web of "Могу ли я доверять пользовательскому вводу в wp_redirect ()?"

Вы не можете доверять пользовательскому вводу. Всегда готовьте значение, которое вы хотите использовать в своем собственном коде. Пример:

 $path = filter_input( INPUT_SERVER, 'REQUEST_URI', FILTER_SANITIZE_URL ); if ( $path ) { $url = 'http://old.example.com' . $path; $url_escaped = esc_url( $url ); $status = 301; $message = "Moved to <a href='$url_escaped'>$url_escaped</a>."; wp_redirect( 'http://old.example.com'. $path, $status ); wp_die( $message, 'Moved', $status ); }