
07.02.2009, 06:37
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме: 2140897
Репутация:
267
|
|
.:EnoT:. думаю вместо intval лучше заюзать is_numeric,так как цитирую
У intval() есть интересная особенность - она возвращает TRUE если первой в аргументе содержится хотя бы одна цифра.
И у разработчиков тоже есть интересная особенность =)) -- они периодически используют intval()/(int) в логичесих условиях,
допуская непростительные ошибки.
Ведь наличие цифр в строке вовсе не гарантирует отсутствие других символов.
Пример:
/index.php?id=1'"qwerty
PHP код:
$id=$_GET['id'];
if(intval($id) && (int)$id)
{
sql_query("select $id from table_name");
}
else die('Id not integer!');
Несмотря на кажущуюся незначительность баги, встречается она в диком тырнете достаточно регулярно.
Для безопасного сравнения используйте is_numeric()
взято от сюда
_ttps://forum.antichat.ru/threadnav56756-1-10.html
|
|
|