Intereting Posts
Проверка слов функции сайта вызывает перегрузку запроса базы данных Штрих-код галереи: использование атрибута link для ссылки на определенный размер изображения Страница освежающего события js onclick Стилирование второй боковой панели Как получить плагин комментариев Facebook в блоге? Показать последние 12 изображений из медиа-библиотеки Недействительный слайдер Enqueue Slick Переопределить значения настраиваемых параметров для каждой базы меню Отображение терминов по первой букве Удаление изображений на странице настроек мультимедиа Обновление пользовательской мета в пользовательской форме WordPress и перенаправление Могу ли я использовать отношение OR для одного элемента при вызове tax_query из WP_Query и использовать AND для остальных? Изменить размер загружаемых изображений по умолчанию для вкладчиков Как получить постоянную ссылку на статическую домашнюю страницу? Условный / Check: IF comment author – автор сообщения

Обтекание add_query_arg с esc_url не работает

Я знаю о проблеме XSS, связанной с add_query_arg() . Вот почему я обертываю его esc_url() .

Проблема в том, что это не работает с wp_remote_get() .

Если я пойду:

 $url = add_query_arg( array( 'email' => 'myadress@mail.com', 'token' => '899A762614F6C49809A374FB955EC8C15'), 'https://example.com/v3/transactions/notifications/3FF732-68B436B43622-3664083FB82B-CFB043' ); $response = wp_remote_get( $url ); 

Я получаю действительный ответ тела.

Но если я использую esc_url для $url :

 $url = esc_url(add_query_arg( array( 'email' => 'myadress@mail.com', 'token' => '899A762614F6C49809A374FB955EC8C15'), 'https://example.com/v3/transactions/notifications/3FF732-68B436B43622-3664083FB82B-CFB043' )); $response = wp_remote_get( $url ); 

Ответ тела – «Несанкционированный».

И странная часть: оба кода повторяют одну и ту же строку для $ url !!!

Что теперь?

Solutions Collecting From Web of "Обтекание add_query_arg с esc_url не работает"

И странная часть: оба кода повторяют одну и ту же строку для $ url !!!

Нет, они этого не делают. Посмотрите на источник страницы. esc_url() кодирует символ & control. Вы не можете этого сделать и ожидаете, что HTTP-запрос будет работать правильно.

esc_url_raw() этого используйте esc_url_raw() . Обратите внимание на описание в Codex относительно этой функции:

Функция esc_url_raw () похожа на esc_url () (и фактически использует ее), но в отличие от esc_url () она не заменяет объекты для отображения. Полученный URL-адрес безопасен для использования в запросах базы данных, перенаправлениях и HTTP-запросах .
https://codex.wordpress.org/Function_Reference/esc_url_raw