«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Достаточно ли `mysql_real_escape_string ()` и `mysql_escape_string ()`, чтобы предотвратить атаки впрыскивания MySQL?

Достаточно ли `mysql_real_escape_string ()` и `mysql_escape_string ()`, чтобы предотвратить атаки впрыскивания MySQL?

Опубликовано в 2025-03-22
Просматривать:734

Are `mysql_real_escape_string()` and `mysql_escape_string()` Enough to Prevent MySQL Injection Attacks?

MySQL Инъекционные атаки: a Gooder Dive

Введение

]

обеспечение безопасности веб -применений является решающей, а защита Database является частью этого усилия. В этой статье рассматривается эффективность использования mySQL_REAL_ESCAPE_STRING () и MYSQL_ESCAPE_STRING () в защите от атак SQL.

выключены функциями для безопасности? обычно используются для ухода с данными, прежде чем вставить их в запросы SQL. Однако достаточно ли эти функции защиты от всех векторов атаки?

экспертные мнения

в соответствии с экспертами, mysql_real_escape_string () не обеспечивает полную защиту от инъекций SQL. Это потому, что он предназначен только для того, чтобы избежать переменных PHP внутри запросов. Он не может обрабатывать сэкспрессирующие таблицы или имена столбцов или ограниченные поля. "ГДЕ " . mysql_real_escape_string ($ field). "=". mysql_real_escape_string ($ value);

Этот запрос уязвим для инъекции SQL, если поле $ или $ Value содержит вредоносной ввод. Хакер может создать вредоносный запрос, который обходит обшивки, выходящие из себя и выполняет несанкционированные команды. Это может разоблачить все записи в таблице, потенциально раскрывающая конфиденциальную информацию.

charset Exploits: Эти эксплойты используют преимущества уязвимостей в Internet Explorer и PHP Charset. Они могут позволить хакерам выполнять произвольные запросы SQL. mysql_real_escape_string ($ argv [1]), mysql_real_escape_string ($ argv [2]), mysql_real_escape_string ($ argv [3]));

]

input 1:
$sql = "SELECT number FROM PhoneNumbers " .
       "WHERE " . mysql_real_escape_string($field) . " = " . mysql_real_escape_string($value);

input 3: выполняет неожиданные запросы SQL

  • Решение: подготовленные операторы
  • эксперты рекомендуют использовать подготовленные утверждения вместо функций exping. Подготовленные операторы-это методы на стороне сервера, которые гарантируют только действительный SQL. Этот подход обеспечивает комплексную защиту от инъекций SQL, как известных, так и неизвестных.
  • пример с использованием PDO

$ sql = 'Выберите URL из GrabbeDurls, где'. $ column. '=? Предел? '; $ ratement = $ pdo-> подготовка ($ sql); $ ratement-> execute (array ($ value, $ limit));

Этот код использует подготовленные операторы, чтобы безопасно избежать ввода пользователя и выполнить запросы. Инъекции, их недостаточно для полной безопасности. Подготовленные заявления являются рекомендуемым подходом для надежной безопасности базы данных.

]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3