[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Чем плох такой код?
Гость_vtos
Всем здравствуйте!
Ребят, объясните пожалуйста - если человек пишет вот такую строку кода:

$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']

Спустя 3 часа, 36 минут, 22 секунды (29.03.2010 - 06:26) kirik написал(а):
Цитата (FatCat @ 28.03.2010 - 18:50)
Все помещаются в глобальный массив $ibforums->input , все обращения в коде только через $ibforums->input['input_name']

А как разделяются post от get?
Быстрый ответ:

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