Форум русской поддержки Joomla!® CMS
04.12.2016, 12:09:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Редирект запросов с параметром без значения на 404 через htaccess

 (Прочитано 91 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andreytemn
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« : 04.07.2016, 09:59:14 »

Здравствуйте, возникла такая потребность - требуется перебрасывать запросы типа "<имя сайта>/?asdf", т.е., в которых после "?" идет бессвязный текст (имя параметра без значения), на страницу 404. В запросе может присутствовать или отсутствовать "=", но если после него нет никакого текста, то он не должен обрабатываться. Делаю через htaccess. Пока что он выглядит как-то так:
Код:
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [OR]
#отключить обработку запросов
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_] [NC]
RewriteRule ^(.*)$ index.php [R=404,L]

Но так режутся вообще все запросы с параметрами и перестаёт работать админка. ЧЯДНТ?
Заранее спасибо.
Записан
andreytemn
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #1 : 05.07.2016, 13:04:46 »

По сути, поставленную задачу может выполнить следующий код:

Код:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [OR]
RewriteCond %{QUERY_STRING} ^[a-zA-Z0-9_]+$ [OR]
RewriteCond %{QUERY_STRING} ^[a-zA-Z0-9_]+=$ [NC]
RewriteRule ^(.*)$ index.php [R=404,F]

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

Код:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule ^(.*)$ index.php [R=404,F]
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet