Seravin
04.03.2010, 01:43
Тут вот в чём у меня проблема: читал статью про анти sql-inj, написал там, но никто ничего не написал. Я пытаюсь понять минусы использования такого метода выборки из базы данных.
$myid=intval($_GET['id']);
$q="SELECT * FROM mytable WHERE id=".myid;
...
и передачи параметра id строкой(даже если поле id числовое):
$myid=mysql_real_escape_string($_GET['id']);
$q="SELECT * FROM mytable WHERE id=' ".myid." ' ";//без пробелов
...
Идёт всё равно конвертация в числовой тип, обрезая строку начиная с символа с которого не удалось преобразование.
Какой смысл разделять строковые и числовые параметры, если можно строкой.
(скрипт довольно простой, без проверки на magic_quotes, но не в этом смысл)
$myid=intval($_GET['id']);
$q="SELECT * FROM mytable WHERE id=".myid;
...
и передачи параметра id строкой(даже если поле id числовое):
$myid=mysql_real_escape_string($_GET['id']);
$q="SELECT * FROM mytable WHERE id=' ".myid." ' ";//без пробелов
...
Идёт всё равно конвертация в числовой тип, обрезая строку начиная с символа с которого не удалось преобразование.
Какой смысл разделять строковые и числовые параметры, если можно строкой.
(скрипт довольно простой, без проверки на magic_quotes, но не в этом смысл)