ограничения mysql_real_escape_string
mysql_real_escape_string функция в PHP была критичена за то, что не обеспечила полную защиту от инъекций SQL, что вызывает вопросы о потенциальных достоинствах. В то время как некоторые утверждают, что неправильное использование функции должно быть виновато, другие выразили обеспокоенность по поводу ее неотъемлемых ограничений.
ограничения использования
одна из основных проблем с mysql_real_escape_string - это то, что необходимо использовать в соответствии с предполагаемыми. Он предназначен для того, чтобы избежать значений текста, предназначенных для использования в отдельных кавычках в операторах SQL, как показано ниже:
$value = mysql_real_escape_string($value, $link); $sql = "... `foo` = '$value' ...";]
] применение mysql_real_escape_string в любом другом контексте, например, при использовании его, чтобы избежать значений, используемых вне кавычек, может привести к уязвимостям. mysql_real_escape_string
пример атаки, которая может обойти mysql_real_escape_string, когда он используется для выхода из численных значений. Рассмотрим следующий запрос:
mysql_query ('удалить из пользователей, где user_id =' .mysql_real_escape_string ($ input));если ввод "5 или 1 = 1", Query будет:
mysql_query('DELETE FROM users WHERE user_id = '.mysql_real_escape_string($input));
]
DELETE FROM users WHERE user_id = 5 OR 1=1
еще одна потенциальная ловушка с mysql_real_escape_string связана с кодировками символа. Если кодирование подключения к базе данных не установлено правильно, это может привести к несоответствиям между тем, как mysql_real_escape_string выходит из строк и как база данных их интерпретирует. Это несоответствие может создавать уязвимости при конкретных обстоятельствах, особенно при работе со строками мультибита.
Заключение
, в то время как mysql_real_escape_string может быть эффективным инструментом при правильном использовании, его ограничения и риск неправильного использования делают это ограничивающим вариантом. Желательно использовать альтернативные подходы, такие как подготовленные утверждения, параметризованные запросы или более современные API базы данных, которые обеспечивают более надежную защиту от уязвимостей инъекций.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3