всем привет. как защитится от SQL инъекций?
я полагаю, что одних лишь addslashes и mysql_real_escape_string будет маловато, хотелось бы узнать еще способы защиты от такого рода атак. и к слову в чем разница между addslashes и mysql_real_escape_string? ведь обе ф-ции добавляют слэши перед спец. символами...
1. Bio man - 29 Сентября, 2011 - 16:39:03 - перейти к сообщению
2. Мелкий - 29 Сентября, 2011 - 16:43:33 - перейти к сообщению
От sql-инъекций - mysql_real_escape_string более чем достаточно всегда. Не забывайте только применять её.
mysql_real_escape_string дополнительно экранирует всё, что требуется с учетом локалей. Да и вообще лучше знает, что для своей базы надо экранировать.
Bio man пишет:
и к слову в чем разница между addslashes и mysql_real_escape_string?
mysql_real_escape_string дополнительно экранирует всё, что требуется с учетом локалей. Да и вообще лучше знает, что для своей базы надо экранировать.
3. Bio man - 29 Сентября, 2011 - 16:50:56 - перейти к сообщению
mysql_real_escape_string спасает от всех типов инъекций? даже от UNION? допустим есть запрос "SELECT * FROM users WHERE login=$login AND pass=$pass" и в переменную пасс передать что то типо qwerty' or 1=1 и обработать этот запрос с mysql_real_escape_string то эта ф-ция предотвратит вход в систему? аналогичный вопрос с инъекцией типа DELETE, UPDATE, INSERT...
4. Мелкий - 29 Сентября, 2011 - 16:57:50 - перейти к сообщению
Тип инъекции изобретён один - вклиниться в инструкцию. Не имеет значения, что в этой инъекции, важно только, будет ли прервана строка или нет.
Естественно, если вы напишите
Естественно, если вы напишите
То никакой escape здесь не поможет.
А от типичных:
Ни одна инъекция ничего не сделает, т.к. останется простой строкой.