Например пользователя вместо то чтоб ввести 5 вводит это:
$post='5 or mess=6':
и этот код выполняется(sql injection)
SELECT * FROM message WHERE mess=htmlspecialchars($post)
Toxin, как бы если там должно быть число, то обрабатываем $post = (int) $post.
А если должна быть строка, то mysql_real_escape_string()
XsErG, Я делаю по другому, я для задач выборки использую отдельного пользователя у которого из прав только SELECT, и всё, остальное мне не грозит
15 Май 2010, 10:46И? А если я выберу таблицу users с логинами, хешами, мыльниками (возможно контрольными вопросами и ответами)?
Это спасет от удаления, а удаление не самое популярное средство, интереснее все же войти в систему Ы.
Кстати можно юзать prepead statements и забыть "почти" про скулинъекшн
Я знаю как защитится от инекции, я спрашиваю как ее можно произвести если переменная получена от пользователя ничем не обрабатывается как только htmlspecialchars?
15 Май 2010, 12:11Над осушествить проверку на наличие сайта в базе
$adr=mysql_real_escape_string($_POST['adr']);
$prov=parse_url("$adr");
while($rown=mysql_fetch_array($row))
$tt=parse_url($rown['adr']);
{
if($prov=$tt['host']) {$error="Такой сайт уже зарегистрирован!<br/>\n";}
}
что не так(( немогу понять