Показать сообщение отдельно

  #15  
Старый 22.01.2010, 20:42
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
С нами: 9419426

Репутация: 648
По умолчанию

В очередной раз попав в эту тему, совершенно не понял, о чём она.
То ли я что-то не понимаю, то ли другие... Надо разобраться.

Цитата:
Но что если администратор хостинга решит установить ее значение в единицу? Будет происходить двойное экранирование спецсимволов! Поэтому, функцию addslashes необходимо применять только в том случае, когда magic_quotes_gpc = 0.
Чем не нравится двойное экранирование?
Допустим есть код:
PHP код:
$name addslashes($_GET['name']);
$query "SELECT * FROM users WHERE username = '$name'"
Подаём на вход кавычку.
При magic_quotes_gpc = Off:
Код:
SELECT * FROM users WHERE username = '\''
Всё хорошо
При magic_quotes_gpc = On:
Код:
SELECT * FROM users WHERE username = '\\\''
Опять всё хорошо - за пределы кавычек выйти не получается.
Где уязвимость?!

Цитата:
Программа: TutorialCMS 1.02 (возможно и более ранние версии)
Насчёт примера вообще непонятно, к чему он здесь - там нет никакой фильтрации, понятно, что без слеширования код уязвим. Казалось бы, тема о безопасном использовании функций слеширования независимо от конфигурации php.

P.S. Чтоб убедить меня в осмысленности этой темы, напишите, пожалуйста, код, обрабатывающий входные параметры функцией addslashes() и уязвимый при magic_quotes_gpc = On.
 
Ответить с цитированием