ANONIM123
11.05.2009, 11:54
Вобщем в базе есть запись с:
login='Мой логин'', pas=хеш паса
при прямом запросе из phpmyadmin'a:
SELECT * FROM users WHERE login='Мой логин'' AND pas_hesh='хеш паса...' всё выводиться нормально, а при выводе из php скрипта не выводиться...
$query="SELECT * FROM users WHERE login='Мой логин'' AND pas_hesh='хеш паса...'";
echo $query;
$sql = mysql_query($query, $sqlid);
while ($tablerows = mysql_fetch_row($sql)){
echo "Есть резуьтат!";
}
Почему не выодиться из пхп скрипта?
Добавлено через 5 минут:
Аа, в html исходнике запрос выглядит вот так:
Мой логин'
Зачем нужен "&", и почему он добавился?
Да, значение бирётся из кука:
%CC%EE%E9+%F2%E5%F5%ED%E8%F7%E5%F1%EA%E8%E9+%ED%E8 %EA%26%23039%3B
тут в глаза бросаются циферки 23039...
а если юзер вставит в текст #039 и с этим пройдёт запрос то ведь никакой уязвимости нет, этот символ, и другие с # интерпретируется только как текст? Зачем тогда функция защиты ставит & который интерпретируется браузером как & ?
А ещё когда то было описание sql уязвимости из за проблем с кодировкой, кажеться на разоре... У ково есть ссыль выложите плиз :)
если перез запрсоом символ & просто удалить с помощю регулярки то всё номрально, и безопасно?
login='Мой логин'', pas=хеш паса
при прямом запросе из phpmyadmin'a:
SELECT * FROM users WHERE login='Мой логин'' AND pas_hesh='хеш паса...' всё выводиться нормально, а при выводе из php скрипта не выводиться...
$query="SELECT * FROM users WHERE login='Мой логин'' AND pas_hesh='хеш паса...'";
echo $query;
$sql = mysql_query($query, $sqlid);
while ($tablerows = mysql_fetch_row($sql)){
echo "Есть резуьтат!";
}
Почему не выодиться из пхп скрипта?
Добавлено через 5 минут:
Аа, в html исходнике запрос выглядит вот так:
Мой логин'
Зачем нужен "&", и почему он добавился?
Да, значение бирётся из кука:
%CC%EE%E9+%F2%E5%F5%ED%E8%F7%E5%F1%EA%E8%E9+%ED%E8 %EA%26%23039%3B
тут в глаза бросаются циферки 23039...
а если юзер вставит в текст #039 и с этим пройдёт запрос то ведь никакой уязвимости нет, этот символ, и другие с # интерпретируется только как текст? Зачем тогда функция защиты ставит & который интерпретируется браузером как & ?
А ещё когда то было описание sql уязвимости из за проблем с кодировкой, кажеться на разоре... У ково есть ссыль выложите плиз :)
если перез запрсоом символ & просто удалить с помощю регулярки то всё номрально, и безопасно?