Прежде, чем выполнять запрос
$res = mysql_query("SELECT * FROM news WHERE id = '.$_GET['id'].'");
нужно сначала проверить значение переменной id
. В данном случае переменная id
имеет числовой тип и должна принимать только целочисленное значение. В таком случае помогает функция intval
, которая преобразует переменную к целому типу.
$_GET['id'] = intval($_GET['id']);
Таким образом мы исключаем возможность внедрения SQL-запроса.
Я раньше так от SQL injection атак защищался
//%s - строка
//%d - целое число
Сейчас использую PDO и подготовленные выражения.
Из-за повышенной безопасности выполнения SQL-инъекций?
Вы про PDO?
PDO не только повышенная безопасность, но и быстродействие, а так же можно при необходимости перейти от MySQL к другой СУБД, например: PostgreSQL, SQLite.
Да, о PDO. Часто ли вам приходилось использовать другие базы данных?
Здравствуйте, больше информации по этой теме можно найти тут:http://lifeexample.ru/php-primeryi-skriptov/zashhita-ot-sql-inektsiy.html
P.S. Очень маленькая у вас статья (( Мало полезной инфы.