Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: htaccess и символы " : < > ...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
3371
Отправлено: 04 Апреля, 2011 - 23:37:45
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Здравствуйте. Возникла следующая проблема.

Если в адресную строку браузера вбить символы " : < > пробел и т.д. (или их эквиваленты, например, для " это будет %22, для пробела %20), то вылетает Forbidden. В htaccess пытался отловить хотябы 1 из таких символов, пусть например, " (двойная кавычка) и для теста использовал такие строки:

в адресе - http://domain[dot]ru/%22
в htaccess -

CODE (htaccess):
скопировать код в буфер обмена
  1. RewriteEngine on
  2.  
  3. RewriteCond %{REQUEST_URI} \%22
  4. RewriteRule .* error.php [L]


но вылезает не error.php , а Forbidden.
Подскажите пожалуйста, что не так.

(Отредактировано автором: 04 Апреля, 2011 - 23:43:12)

 
 Top
grefon
Отправлено: 05 Апреля, 2011 - 00:33:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Как-то я обычно не заморачаиваюсь на счет этих символов. Просто делаю стандартный набор правил, чтобы уменьшить вероятность взлома и все. Иногда ведь и через get нужно передать ту же двойную кавычку (например название фирмы) или еще что-то. Ну в общем чаще всего использую такую вот схему, можете из нее переделать под себя:
CODE (htmlphp):
скопировать код в буфер обмена
  1. # Включаем преобразование URL
  2. RewriteEngine on
  3. # Назначаем базу преобразований
  4. RewriteBase /
  5.  
  6. Options +FollowSymlinks
  7.  
  8.  
  9. # Условие преобразования
  10. RewriteCond   %{REQUEST_FILENAME}       !-d
  11. RewriteCond   %{REQUEST_FILENAME}       !-f
  12.  
  13. # Блокировать любой запрос, пытающийся установить значение mosConfig через URL
  14. RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
  15.  
  16. # Блокировать любой запрос, пытающийся испортить base64_encode через URL
  17. RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
  18.  
  19. # Блокировать любой запрос, содержащий тег <script> в URL
  20. RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
  21.  
  22. # Блокировать любой запрос, пытающийся установить значение глобальных переменных PHP через URL
  23. RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
  24.  
  25. # Блокировать любой запрос, пытающийся изменить _REQUEST переменную через URL
  26. RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
  27.  
  28.  
  29. RewriteRule ^(.*) index.php?%{QUERY_STRING}


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
3371
Отправлено: 05 Апреля, 2011 - 10:02:23
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




grefon

Не совсем понял Ваши правила. за счет чего должна происходить блокировка?

Попробовал применить Ваши правила, но у меня ничего не блокировалось. Вообщем, что с вашими правилами, что без результат один и тот же., например тег <script> без проблем попадает QUERY_STRING и далее под себя подгребает все что после должно выводится. ну да ладно...

(Отредактировано автором: 05 Апреля, 2011 - 14:43:16)

 
 Top
3371
Отправлено: 05 Апреля, 2011 - 14:44:06
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Понял где у меня основная проблема, но из-за чего? Например, есть адрес domain.ru/dir1/dir2/dir3... так вот у меня проблема описанная выше именно с dir1, т.е. тем каталогом которые идет после реально существующего, т.е. если dir1 реальный, а не виртуальный, то такая проблема будет уже с dir2 и т.д. Каталоги, которые идут после проблемного - все обрабатываются нормально.

Вообщем если в имени dir1 есть символы < или > или " или | или : или пробел то forbidden вылезает и его никак не контроллирую.

Кто сталкивался с подобным или может знает в чем может быть проблема?

(Отредактировано автором: 05 Апреля, 2011 - 18:28:51)

 
 Top
JustUserR
Отправлено: 05 Апреля, 2011 - 18:36:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




3371 пишет:
Но вылезает не error.php , а Forbidden. Подскажите пожалуйста, что не так.
В качестве возможной причины осуществление возникновение некорректного функционировнаие предполагаемой схемы web-решения, заключающегося в проведении включения выделенного программного объекта для поддержания инициировния генерации специальной HTML-страницы, производимой в случае осуществления включения в предполагаемый URL-адрес некорректных разделительных и неграмматических элементов в повышенном базовом уровне элементного трактования, допустимо использование специального предшествующего управляющего web-приложения на целевом виртуальном хосте, позволяющего производить приоритетное извлечение оригинальной составлюящей элемента URL-адреса, и обеспечивать выполнение сопоставленный действий


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB