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 :: защита от xss

 PHP.SU

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


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

> Без описания
kuller
Отправлено: 23 Февраля, 2013 - 08:25:58
Post Id



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


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


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




взял функцию защиты от xss атак с движка dle.

PHP:
скопировать код в буфер обмена
  1. function check_xss()
  2. {
  3. $url = html_entity_decode(urldecode($_SERVER['QUERY_STRING']));
  4. $url = str_replace("\\", "/", $url);
  5.        
  6. if($url)
  7. {
  8.    if((strpos($url, '<') !== false) || (strpos($url, '>') !== false) || (strpos($url, '"') !== false) || (strpos($url, './') !== false) || (strpos($url, '../') !== false) || (strpos( $url, '\'') !== false) || (strpos($url, '.php') !== false))
  9.   {
  10.      if($_GET['do'] != "search" or $_GET['subaction'] != "search") die("Hacking attempt!");
  11.   }
  12. }
  13.        
  14. $url = html_entity_decode(urldecode($_SERVER['REQUEST_URI']));
  15. $url = str_replace("\\", "/", $url);
  16.        
  17. if($url)
  18. {
  19.         if((strpos($url, '<') !== false) || (strpos( $url, '>' ) !== false) || (strpos($url, '"') !== false) || (strpos($url, '\'') !== false))
  20.        {
  21.         if($_GET['do'] != "search" or $_GET['subaction'] != "search") die("Hacking attempt!");
  22.        }
  23. }
  24. }


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

PHP:
скопировать код в буфер обмена
  1.  
  2. $url = htmlspecialchars($url);
  3. $search = array('|', '\'', '$', '\\', '^', '%', '`', "\0", "\x00", "\x1A", "??????");
  4. $replace = array('|', ''', '$', '\', '^', '%', '`', '', '', '', '');
  5. $url = str_replace($search, $replace, $url);
  6. $url = strip_tags(stripslashes(addslashes(trim($url))));
  7.  


и вроде все работает. если написать в адресной строке

CODE (javascript):
скопировать код в буфер обмена
  1. <script>alert('xss');</script>


или

CODE (javascript):
скопировать код в буфер обмена
  1. <script>alert("cookie: "+document.cookie)</script>


защита сробатывает, а вот если сделать чпу то код

CODE (javascript):
скопировать код в буфер обмена
  1. <script>alert("cookie: "+document.cookie)</script>


защита не сробатывает. Почему так получается что без чпу все работает отлично, а с чпу защиты нет? (в dle тоже самое с защитой во всех версиях)

(Отредактировано автором: 23 Февраля, 2013 - 08:31:37)

 
 Top
kuller
Отправлено: 23 Февраля, 2013 - 19:52:45
Post Id



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


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


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




залил на сервер, там работает. Может тогда у денвера php.ini надо ченибуть изменить?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB