Не бить мертвую (или очень живую?) Лошадь, но ...
Инъекция может произойти только тогда, когда данные читаются механизмом SQL как команды.В очень простом случае, если вы разрешите неэкранированные "
символы в ваших данных, а ваши данные инкапсулированы в "
символов в SQL, они позволили вам выполнить атаку SQL-инъекцией.
Ключ к предотвращению any Внедрение SQL предназначено для правильной проверки и экранирования входящих данных КАЖДЫЙ раз, в то время, когда они входят в оператор SQL.Самый простой способ сделать это - просто использовать подготовленные операторы, которые позаботятся о вас, позволяя безопасно передавать параметры в оператор SQL.
Каждая библиотека базы данных имеет свой собственный способ экранирования или использования подготовленногозаявления.В MySQL и PHP у вас есть mysqli_real_escape_string()
, который следует использовать ПЕРИОД КАЖДОГО ВРЕМЕНИ , когда вы используете библиотеку mysqli
.
Библиотека PDO имеет свой собственный путь, ноесли я правильно помню, подготовленные заявления были большой частью PDO - используйте их 100% времени, и вы будете в порядке в этом отношении.