[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Иньекция
DeeKeiD
Возможна ли иньекция в данном скрипте? Если да то где и как её убрать?
if($_GET['action']=="view")
{
$userID = $_GET['id'];
$res = mysql_query("SELECT * FROM `users` WHERE `id` = '". intval($userID) ."' OR `nickname` = '". mysql_real_escape_string($userID) ."'");
$row = mysql_fetch_assoc($res);
echo $row['login'];
}




Спустя 19 минут, 48 секунд (20.06.2010 - 18:00) SlavaFr написал(а):
я не вижу возможности инекции в этом sql.

Спустя 28 минут, 13 секунд (20.06.2010 - 18:28) gzim9x написал(а):
Цитата
Возможна ли иньекция в данном скрипте? Если да то где и как её убрать?

Код кажется безопасным. Но взглянем с другой стороны.
Безопасность этого участка зависит не только от вашего кода.
Например от того, какую версию MySQL вы используете -- в ранних версиях были баги с реализацией mysql_real_escape_string().
И еще... вдруг ранее вы использовали "SET NAMES..." и сменили дефолтную кодировку -- mysql_real_escape_string() об этом не знает -- как результат атака будет потенциально возможна.
http://stackoverflow.com/questions/1220182...t-sql-injection


Спустя 13 часов, 26 минут, 37 секунд (21.06.2010 - 07:55) Ka4_0k написал(а):
Цитата (gzim9x @ 20.06.2010 - 15:28)
Цитата
Возможна ли иньекция в данном скрипте? Если да то где и как её убрать?

Код кажется безопасным. Но взглянем с другой стороны.
Безопасность этого участка зависит не только от вашего кода.
Например от того, какую версию MySQL вы используете -- в ранних версиях были баги с реализацией mysql_real_escape_string().
И еще... вдруг ранее вы использовали "SET NAMES..." и сменили дефолтную кодировку -- mysql_real_escape_string() об этом не знает -- как результат атака будет потенциально возможна.
http://stackoverflow.com/questions/1220182...t-sql-injection

Ну если mysql_real_escape_string передать вторым параметром идентификатор соединения с базой, то с со сменой кодировок всё должно быть ок.

Спустя 2 часа, 31 минута, 24 секунды (21.06.2010 - 10:26) gzim9x написал(а):
Ka4_0k
я больше писал об окружении... но уж если в деталях:
DeeKeiD, спрашивал "Возможна ли иньекция в данном скрипте...."
Вы написали "...если mysql_real_escape_string передать вторым параметром.....всё должно быть ок".
Да я с вами совершенно согласен -- должно, но (бронепоезд на запасном пути) все-же выношу экранирование в отдельный метод и дописываю время от времени по мере поступления информации wink.gif


_____________
Бесполезно просить пощады у цезаря
Фатальная ошибка : Звонок в неопределенную функцию ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.