Помогите разобраться в коде. Зачем используется urldecode?

Akela

Guest
Помогите разобраться в коде. Зачем используется urldecode?

Приветствую!

Возникла необходимость разобраться в коде форума, подверженного уязвимости SQL-injection, несмотря на включенный magic_quotes_gpc. Детальное рассмотрение выявило следующий код:

PHP:
return urldecode($HTTP_COOKIE_VARS[$INFO['cookie_id'].$name]);
Этот фрагмент дает возможность передавать параметры вида %2527, которые будут декодированы дважды (получится злостная '). Так собственно вопрос: а зачем там нужен urldecode? Насколько я понимаю, такое декодирование осуществляется сервером и скрипт получает уже декодированные значения параметров, которые можно использовать без каких либо преобразований.

Или я заблуждаюсь и не все серверы так делают?
 

Akela

Guest
Автор оригинала: SiMM
> а зачем там нужен urldecode?
PHP:
var_dump($HTTP_COOKIE_VARS[$INFO['cookie_id'].$name]);
Может я, конечно, тупой, но к чему это? Делаю такой вывод - значение переменной нормально декодировано, даже если в нем есть спецсиволы и кириллица. На мой взгляд, вызов urldecode тут совершенно не нужен. Вот и спрашиваю - так это или я чего-то не понимаю?

> Возникла необходимость разобраться в коде форума, подверженного уязвимости SQL-injection
PHP FAQ: \"Кавычки \". Если Вы работаете с MySQL
Спасибо, конечно, но переписывать форум я не собираюсь :) А конкретную уязвимость уже пофиксил, просто хотелось бы до конца разобраться в этом.
 

Фанат

oncle terrible
Команда форума
тебе никто не говорил переписывать форум.
тебе всего лишь указали на то, что от директивы, которую ты почитаешь панацеей от SQL-injection, на деле только вред.
 

SiMM

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

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

> хотелось бы до конца разобраться в этом
Для этого тебе и была дана ссылка.
 
Сверху