Частый посетитель
Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009
Помог: 2 раз(а)
|
взял функцию защиты от xss атак с движка dle.
PHP:
скопировать код в буфер обмена
function check_xss() { if($url) { if((strpos($url, '<') !== false) || (strpos($url, '>') !== false) || (strpos($url, '"') !== false) || (strpos($url, './') !== false) || (strpos($url, '../') !== false) || (strpos( $url, '\'') !== false) || (strpos($url, '.php') !== false)) { if($_GET['do'] != "search" or $_GET['subaction'] != "search") die("Hacking attempt!"); } } if($url) { if((strpos($url, '<') !== false) || (strpos( $url, '>' ) !== false) || (strpos($url, '"') !== false) || (strpos($url, '\'') !== false)) { if($_GET['do'] != "search" or $_GET['subaction'] != "search") die("Hacking attempt!"); } } }
кроме этого все данные пулучаемые от пользователя обробатываю следущим образом
PHP:
скопировать код в буфер обмена
$search = array('|', '\'', '$', '\\', '^', '%', '`', "\0", "\x00", "\x1A", "??????"); $replace = array('|', ''', '$ ', '\ ', '^ ', '%', '` ', '', '', '', ''); $url = str_replace($search, $replace, $url); $url = strip_tags(stripslashes(addslashes(trim($url))));
и вроде все работает. если написать в адресной строке
или
защита сробатывает, а вот если сделать чпу то код
защита не сробатывает. Почему так получается что без чпу все работает отлично, а с чпу защиты нет? (в dle тоже самое с защитой во всех версиях)(Отредактировано автором: 23 Февраля, 2013 - 08:31:37)
|