Перейти к содержанию

сайт отдает 403 ошибку с utm_referrer


Рекомендуемые сообщения

прислал заказчик инфу, что при переходе на сайт по ссылке с Яндекс.товаров сайт отдает 403 ошибку.

общение с хостером ничего не дало, начал выяснять в чем тут дело.

в url добавляется utm метка utm_referrer=https://yandex.ru/products/search?text=текст

на сервак естественно приходит перекодированный вариант вида

https://domain/path-to-product?utm_referrer=https%3A%2F%2Fyandex.ru%2Fproducts%2Fsearch%3Ftext%3D%D1%82%D0%B5%D0%BA%D1%81%D1%82

 

методом проб выяснил что если заменить %3F на что-то другое, то сайт вполне работает.

похоже, что обновление безопасности апача запретило использовать hex-перекодированный символ "?" в "%3F" в url.
наткнулся на такое обсуждение
https://stackoverflow.com/questions/78729429/403-forbidden-when-url-contains-get-with-encoded-question-mark-unsafeallow3f

заменил в .htaccess строку
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
на
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA,UnsafeAllow3F]

работать то работает, но интересно насколько это безопасно и есть ли другие решения, учитывая что и php'шный urlencode и js'овский encodeURIComponent по-прежнему кодируют этот символ в %3F

Ссылка на комментарий
Поделиться на другие сайты

В схожей ситуации , данное решение предложил сам хостер.

Сразу после RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)

 

RewriteRule ^([^?]*) index.php?_route_=$1 [B,L,QSA,UnsafeAllow3F]

 

7777.png

 

 

Ну и как вариант от меня (так же нужно проверять).

# Преобразование UTM-меток от Яндекс.Товаров
RewriteCond %{QUERY_STRING} utm_referrer=https%3A%2F%2Fyandex\.ru%2Fproducts(.*)
RewriteRule ^(.*)$ $1?utm_source=yandex&utm_medium=products [R=301,L]
  • Применяет UnsafeAllow3F только для трафика с Яндекс.
  • Сохраняет UTM-метки в исходном виде
  • Не создает дополнительных редиректов
  • Минимально влияет на существующую логику работы сайта
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...