При тестировании кода, взаимодействующего с базами данных, важно предотвратить атаки SQL-инъекцией, правильно экранируя пользовательский ввод. Однако подключение к базе данных для каждого теста может быть неэффективным. Есть ли способ экранировать строки без активного подключения к базе данных?
К сожалению, невозможно надежно экранировать строки без подключения к базе данных. Как mysql_real_escape_string(), так и подготовленные операторы полагаются на знание базы данных об используемом наборе символов. Без этой информации можно создавать многобайтовые последовательности символов, которые обходят механизмы экранирования и приводят к уязвимостям внедрения SQL.
Если ваша цель — чисто тестирование, вы можете рассмотрите возможность использования mysql_escape_string() из-за его скорости и простоты. Хотя он не является полностью безопасным, его вряд ли можно будет использовать в тестовой среде. Однако обратите внимание, что это не рекомендуется для рабочего кода.
Хотя и заманчиво найти способ экранирования строк без подключения к базе данных, на самом деле это неосуществимо. Единственный способ гарантировать целостность данных — использовать правильные методы экранирования в сочетании с подключением к базе данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3