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

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Toha20072008, 5 ноя 2009.

Статус темы:
Закрыта.
  1. Toha20072008

    Toha20072008

    Заблокирован
    Регистр.:
    17 фев 2008
    Сообщения:
    316
    Симпатии:
    50
    Мне нужно сделать запрет в .htaccess - запрет символов > < “ ‘ в адресной строке.

    Помогите :thenks:
     
  2. nittis

    nittis Постоялец

    Регистр.:
    21 апр 2009
    Сообщения:
    68
    Симпатии:
    29
    При обнаружении любого из символов в квадратных скобках делаем редирект на главную страницу

    Код:
    RewriteRule ^.*[<>'"].*$ index.php
    
     
  3. Toha20072008

    Toha20072008

    Заблокирован
    Регистр.:
    17 фев 2008
    Сообщения:
    316
    Симпатии:
    50
    Что то не действует этот код. Запрещённые символы продолжают свободно набираться в адресной строке..

    Добавлено через 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> и т.д.
     
  4. nittis

    nittis Постоялец

    Регистр.:
    21 апр 2009
    Сообщения:
    68
    Симпатии:
    29
    Запретить что-либо набирать пользователю в адресной строке своего браузера Вы не сможете, так как mod_rewrite работает исключительно на сервере.

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

    При наборе site.com/page.php?notice=<script>alert(xss)</script> будет вызван скрипт site.com/index.php без параметров
     
  5. Toha20072008

    Toha20072008

    Заблокирован
    Регистр.:
    17 фев 2008
    Сообщения:
    316
    Симпатии:
    50
    Может оно и правильно nittis - но у меня неработает :nezn:.

    не работает.
     
  6. nittis

    nittis Постоялец

    Регистр.:
    21 апр 2009
    Сообщения:
    68
    Симпатии:
    29
    Черт, действительно ошибся, .htaccess и Mod_rewrite всякий раз открываю для себя заново

    Код:
    RewriteEngine on
    RewriteBase /
    RewriteCond %{QUERY_STRING} ^.*('|"|<|>|%22|%3C|%3E).*$
    RewriteRule .* index.php
    
    Наверное не оптимально, но работает. На сей раз дважды протестировал перед тем, как постить. Редирект работает, URL в браузере естественно не меняется.

    %22|%3C|%3E - это коды символов "|<|> для кодирования URL
     
    Toha20072008 нравится это.
  7. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
  8. Toha20072008

    Toha20072008

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

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

    Всё таки лучше самому писать, потратить время одни раз и написать свой .htaccess
     
  9. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Не стоит добавлять процент, русские значения, get запросы, будут блокироваться.


    Кстати, если делать такую защиту на уровне веб-сервера, то это будет довольно ресурсоемкий процесс, чем тоже самое сделать на пхп.
     
  10. nittis

    nittis Постоялец

    Регистр.:
    21 апр 2009
    Сообщения:
    68
    Симпатии:
    29
    Набираешь нужные символы в арресной строке FireFox и жмешь enter. Скорее всего таблицы готовые есть, но мне данного способа пока хватает.

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

    По поводу PHP согласен, будет быстрее. Но если движок чужой и php-файлов в нем много, то правка может быть весьма трудной.
     
Статус темы:
Закрыта.