|
|
|
|
|
для: Тень*
(29.03.2010 в 09:42)
| | На порядок. Мелочь, а приятно. | |
|
|
|
|
автор: Тень* (29.03.2010 в 09:42) |
|
|
для: Николай2357
(29.03.2010 в 09:17)
| | На сколько наносекунд быстрее-то? | |
|
|
|
|
|
|
|
для: vtos
(29.03.2010 в 00:56)
| | Вот так лучше:
$res = mysql_query("SELECT * FROM some_table WHERE id = ". (int)$_GET['id']);
|
1. Функция mysql_query возвращает указатель на результат ($res), а не запрос ($q)
2. (int) - языковая конструкция, а intval() - функция. А значит первая работает на много быстрее. | |
|
|
|
|
|
|
|
для: vtos
(29.03.2010 в 00:56)
| | Да. В таком виде оператор выглядит абсолютно безопасно. | |
|
|
|
|
|
|
|
для: Trianon
(29.03.2010 в 00:51)
| | То есть, приведенный мною пример следовало бы записать так:
$q = mysql_query("SELECT * FROM some_table WHERE id = ".intval($_GET['id']));
|
Я правильно понял? | |
|
|
|
|
|
|
|
для: vtos
(29.03.2010 в 00:49)
| | еще момент
3) Код, формирующий оператор SQL, я пытаюсь писать так, чтобы ситуация с отсутствием инъекций была ясна из текста самого оператора, и не требовала глядеть куда-то сильно далеко от точки этого текста. | |
|
|
|
|
|
|
|
для: Trianon
(29.03.2010 в 00:47)
| | Все понятно, благодарю. | |
|
|
|
|
|
|
|
для: vtos
(29.03.2010 в 00:42)
| | 1) Когда я вижу надпись $_GET['id'] , я изначально считаю, что там находится пользовательский ввод и ничто иное.
2) Я не допускаю присваивания переменным суперглобальных массивов (кроме $_SESSION и $GLOBALS конечно) каких-либо значений. Суперглобальные массивы заполняет php на старте и точка. Единственное исключение из этого правила - откат магических кавычек. Именно откат - до состояния пользовательского ввода. Поэтому это скорее не исключение, а подтверждение правила.
Вышеуказанные строки эту позицию грубо нарушают. | |
|
|
|
|
|
|
|
для: Trianon
(29.03.2010 в 00:38)
| | А как конкретно можно аргументировать это "не нравится"? Имеется в виду написание кода, его читаемость, зрительное восприятие? Поясните, пожалуйста. | |
|
|
|
|
|
|
|
для: Саня
(29.03.2010 в 00:09)
| | Спасибо за пояснения! | |
|
|
|
|