Один трюк, который может помочь в конкретном случае, когда у вас есть страница типа /mypage?id=53
, и вы используете id в предложении WHERE, чтобы убедиться, что идентификатор определенно является целым числом, например:
if (isset($_GET['id'])) {
$id = $_GET['id'];
settype($id, 'integer');
$result = mysql_query("SELECT * FROM mytable WHERE id = '$id'");
# now use the result
}
Но, конечно, это только устраняет одну конкретную атаку, поэтому читайте все остальные ответы. (И да, я знаю, что код выше невелик, но он показывает конкретную защиту.)