Как запретить символы ">" и "<, “, ‘" в алресной строке

Статус
В этой теме нельзя размещать новые ответы.

Toha20072008

Профессор
Заблокирован
Регистрация
17 Фев 2008
Сообщения
314
Реакции
48
  • Автор темы
  • Заблокирован
  • #1
Мне нужно сделать запрет в .htaccess - запрет символов > < “ ‘ в адресной строке.

Помогите :thenks:
 
При обнаружении любого из символов в квадратных скобках делаем редирект на главную страницу

Код:
RewriteRule ^.*[<>'"].*$ index.php
 
  • Автор темы
  • Заблокирован
  • #3
Что то не действует этот код. Запрещённые символы продолжают свободно набираться в адресной строке..

Добавлено через 3 минуты
Есть сайт site.com c мне нужно запретить все подобные запросы site.com/page.php?notice=<script>alert(xss)</script>, site.com/stage.php?notice=<script>alert(xss)</script>, site.com/?user_title=</title><script>alert()</script> и т.д.
 
Запретить что-либо набирать пользователю в адресной строке своего браузера Вы не сможете, так как mod_rewrite работает исключительно на сервере.

А вот отключить попадание нежелательных символов в скрипт можно с помощью скрипта, который я привел выше.

При наборе site.com/page.php?notice=<script>alert(xss)</script> будет вызван скрипт site.com/index.php без параметров
 
  • Автор темы
  • Заблокирован
  • #5
Может оно и правильно nittis - но у меня неработает :nezn:.

php_flag display_errors off
RewriteEngine on
RewriteBase /
RewriteRule ^.*[<>'"].*$ index.php

не работает.
 
Черт, действительно ошибся, .htaccess и Mod_rewrite всякий раз открываю для себя заново

Код:
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} ^.*('|"|<|>|%22|%3C|%3E).*$
RewriteRule .* index.php

Наверное не оптимально, но работает. На сей раз дважды протестировал перед тем, как постить. Редирект работает, URL в браузере естественно не меняется.

%22|%3C|%3E - это коды символов "|<|> для кодирования URL
 
Лучше использовать готовые банлисты для .htaccess для защиты.
Смотри тут Для просмотра ссылки Войди или Зарегистрируйся
 
  • Автор темы
  • Заблокирован
  • #8
Код:
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} ^.*('|"|<|>|%22|%3C|%3E).*$
RewriteRule .* index.php
Наверное не оптимально, но работает. Редирект работает, URL в браузере естественно не меняется.
%22|%3C|%3E - это коды символов "|<|> для кодирования URL

Да всё работает :ay:. А как к этим символам добавлять новые, %(процент), например и где ты берёшь коды символов? Поделись ссылкой плиз.

Лучше использовать готовые банлисты для .htaccess для защиты.
Смотри тут Для просмотра ссылки Войди или Зарегистрируйся

Не сказал бы что лучше, почитай коменты, в коде .htaccess много откровенного бреда, кроме того размер файла получается очень большим из-за этого тормозит система...

Всё таки лучше самому писать, потратить время одни раз и написать свой .htaccess
 
А как к этим символам добавлять новые, %(процент),
Не стоит добавлять процент, русские значения, get запросы, будут блокироваться.


Кстати, если делать такую защиту на уровне веб-сервера, то это будет довольно ресурсоемкий процесс, чем тоже самое сделать на пхп.
 
А как к этим символам добавлять новые, %(процент), например и где ты берёшь коды символов? Поделись ссылкой плиз.

Набираешь нужные символы в арресной строке FireFox и жмешь enter. Скорее всего таблицы готовые есть, но мне данного способа пока хватает.

Не стоит добавлять процент, русские значения, get запросы, будут блокироваться.

Там добавлен не символ процента, а коды конкретных символов.

По поводу PHP согласен, будет быстрее. Но если движок чужой и php-файлов в нем много, то правка может быть весьма трудной.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху