Перечитал много творений на тему безопасности и
кругом - или проверка данных с mysqli_real_escape_string или подготовленные выражения. Альтернативы - нет.
Подскажите, может я не прав - что если в конце каждого sql запроса просто вставлять: or die ("mySQL error 1");
И пусть себе читает хакер: mySQL error 1, mySQL error 2 и т.д.
killer8080
19.04.2013 - 00:22
Цитата (tar @ 18.04.2013 - 22:26) |
Подскажите, может я не прав - что если в конце каждого sql запроса просто вставлять: or die ("mySQL error 1"); |
И что это даст? Инъекция не вызывает ошибку, она модифицирует запрос
inpost
19.04.2013 - 00:28
tarНу пишешь ты, а если он догадывается о твоей структуре, раза с 10-ого сможет подобрать нужный запрос.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Ну допустим простой запрос без проверки входных данных и экранирования:
$r=$db->query ("select * from $db_admin where login='$_SESSION[admin_login]' ") or die ("SQL error 1");
Что здесь можно вставить, что-бы что-то увидеть?
Michael
19.04.2013 - 11:17
tar, если $_SESSION[admin_login] от юзера как то зависит, то вставится например такое : ' or 1 or login='
В результате и запрос выполнится и условие подойдет к каждой строке таблицы.
_____________
There never was a struggle in the soul of a good man that was not hard
killer8080
19.04.2013 - 12:10
Цитата (tar @ 19.04.2013 - 08:44) |
Ну допустим простой запрос без проверки входных данных и экранирования: $r=$db->query ("select * from $db_admin where login='$_SESSION[admin_login]' ") or die ("SQL error 1"); |
Экранирование нужно не только для безопасности, но и просто для корректного ввода текста. Если бы на этом форуме не было экранирования, то ты элементарно не смог бы вставить свой пост, из-за наличия в тексте кавычек.
Экранирование - согласен.
Цитата (Michael @ 19.04.2013 - 07:17) |
tar, если $_SESSION[admin_login] от юзера как то зависит, то вставится например такое : ' or 1 or login=' В результате и запрос выполнится и условие подойдет к каждой строке таблицы. |
Проверял с ввода формы и при вводе напрямую в базе данных:SELECT * FROM `pmd_admin` WHERE login='or 1 or login='
ничего не выводит
дайте другой пример
TranceIT
19.04.2013 - 13:07
Гугли по запросу SQL injection
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
TranceIT
19.04.2013 - 13:09
asd' or login = 1; DROP table pmd_admin
Как то так...
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
Цитата (TranceIT @ 19.04.2013 - 09:09) |
asd' or login = 1; DROP table pmd_admin
Как то так... |
По моему запросу с формы при: $r=$db->query ("select * from $db_admin where login='$_SESSION[admin_login]' ") or die ("SQL error 1");
Выдает: SQL error 1
Еще пример
TranceIT
19.04.2013 - 13:24
В синтаксисе инъекций не силен. гугли и подгоняй запрос по синтаксису.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
Цитата (TranceIT @ 19.04.2013 - 09:24) |
В синтаксисе инъекций не силен. гугли и подгоняй запрос по синтаксису. |
Да потому, что никогда при таком запросе Вы ничего не поломаете
TranceIT
19.04.2013 - 13:29
А вот так?
asd' or login = 1; DROP table pmd_admin--
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
Цитата (TranceIT @ 19.04.2013 - 09:29) |
А вот так? asd' or login = 1; DROP table pmd_admin-- |
Без вариантов!!!! SQL error 1
TranceIT
19.04.2013 - 13:36
Цитата (tar @ 19.04.2013 - 11:31) |
Без вариантов!!!! |
Ну это так кажется...
Спорить не буду, бесполезно.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.