SQL-инъекция действительно плохая, но мне нравится :) 1001 *
Есть много типов SQL инъекций, таких как
удаленный sql injecton
слепая инъекция sql
автоматический обход впрыска sql
**Remote sql injection**
это простой способ получить данные от хакера сайта, используя его как кодировщики
см. этот пример
mysql_query("SELECT * FROM `table_name` WHERE id=".$_GET['id']." ) ;
В моем коде нет защиты
site.php? ID = 1
мой запрос будет выполняться как
mysql_query("SELECT * FROM `table_name` WHERE id=1 ) ;
если хакер убьет твой код
site.php? Id = 1 (любая вещь может создать проблему, например: `'a-z A-Z / * /")
Потому что запрос будет таким
mysql_query("SELECT * FROM `table_name` WHERE id=1' ) ;
, поэтому одиночная квота приведет к ошибке в вашем запросе
и хакер может атаковать вот так
site.php?id=1 union select 0,1,concat(user_name,0x3a,password),3,4 from users
здесь ваш запрос будет выполняться как
mysql_query("SELECT * FROM `table_name` WHERE id=1 union select 0,1,concat(user_name,0x3a,password),3,4 from users) ");
и это будет работать :) 1037 *
слепая инъекция sql
хакер не может работать с простым способом удаленного внедрения SQL
потому что здесь это зависит от правильного и ложного
поэтому он будет использовать and
or
вот так
and (select user_name from users) ;
если работает нормально, скрипт будет работать хорошо, иначе произойдет ошибка
он может знать информацию базы данных вот так
пример таблицы администратора: admin
and (select user_name from users) ; x error
and (select user_name from admin) ; fine
автоматический байпас
это blicd sql инъекция, но только истинное условие может получить доступ к администратору
mysql_query("SELECT * FROM `users` WHERE `user_name`= ".$_POST['user']." AND `password` ='".md5($_POST['pass'])."' ");
хакер может войти как этот
пользователь = что-нибудь 'или 1 = 1 -
поэтому ваш запрос будет выглядеть как
mysql_query("SELECT * FROM `users` WHERE `user_name`= anything or 1=1 --");
что-либо является ошибкой пользователя в базе данных
но условие или 1 = 1 выполняется
- проигнорирует проверку пароля
он может легко получить доступ
защита
addslashes _ mysql_real_escape_string _ intval ( with number only )
указание папки, которую вы можете использовать
пустой index.html, index.php,