Ребят, объясните пожалуйста - если человек пишет вот такую строку кода:
$q = mysql_query("SELECT * FROM some_table WHERE id = {$_GET['id']}");
и при этом ранее в своем коде он выполняет такую операцию -
$_GET['id'] = intval($_GET['id']);
,
то что плохого в этом коде? Какие уязвимости, какие замечания по стилю?
Напишите, пожалуйста свое мнение.
Спасибо.
Спустя 12 минут, 29 секунд (28.03.2010 - 19:43) ZSH написал(а):
Цитата |
Ребят, объясните пожалуйста - если человек пишет вот такую строку кода:$q = mysql_query("SELECT * FROM some_table WHERE id = {$_GET['id']}"); |
привычка.
привыкаеш загонять серверные переменные в запрос к БД, а потом когда-то загоняеш без предварительной обработки, а там может быть что угодно.
Лучше обрабатывать переменную в самих запросах
$q = mysql_query('SELECT * FROM some_table WHERE id = " ' . intval($_GET['id']) . ' " ');
Спустя 1 час, 20 минут, 56 секунд (28.03.2010 - 21:04) twin написал(а):
Кавычки зачем?
Спустя 5 часов, 46 минут, 17 секунд (29.03.2010 - 02:50) FatCat написал(а):
Мне нравится идея безопасности этого движка, я ее почти не трогал, осталась как была от IPB 1.3.
Все входящие переменные ($HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_SERVER_VARS, $HTTP_COOKIE_VARS и т.д.) обрабатываются единой функцией.
Все значения проверяются на цельночисленность, и цельночисленные интвалятся.
Все прочие чистятся регулярками, чтобы скрипты не засунули, и magic_quotes_gpc.
Все помещаются в глобальный массив $ibforums->input , все обращения в коде только через $ibforums->input['input_name']
Все входящие переменные ($HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_SERVER_VARS, $HTTP_COOKIE_VARS и т.д.) обрабатываются единой функцией.
Все значения проверяются на цельночисленность, и цельночисленные интвалятся.
Все прочие чистятся регулярками, чтобы скрипты не засунули, и magic_quotes_gpc.
Все помещаются в глобальный массив $ibforums->input , все обращения в коде только через $ibforums->input['input_name']
Спустя 3 часа, 36 минут, 22 секунды (29.03.2010 - 06:26) kirik написал(а):
Цитата (FatCat @ 28.03.2010 - 18:50) |
Все помещаются в глобальный массив $ibforums->input , все обращения в коде только через $ibforums->input['input_name'] |
А как разделяются post от get?