Будет ли этот код работать с SQL-инъекцией?

Возможный дубликат:
PHP: полная чистая / безопасная функция

Я нашел этот фрагмент кода здесь: http://snipplr.com/view/12853/clean-variables-from-sql-injections/

Автор утверждает:

Эта небольшая функция помогает бороться с общей проблемой безопасности с SQL-инъекциями, она может дезинфицировать любую глобальную переменную, такую ​​как $ POST, $ GET, $ _SERVER и т. Д. И избегать опасных символов.

введите описание изображения здесь Безопасен ли этот код?

function _clean($str){ return is_array($str) ? array_map('_clean', $str) : str_replace("\\", "\\\\" , htmlspecialchars((get_magic_quotes_gpc() ? stripslashes($str) : $str) , ENT_QUOTES)); } //usage call it somewhere in beginning of your script _clean($_POST); _clean($_GET); _clean($_REQUEST);// and so on.. 

Пожалуйста, просветите меня, безопасно ли это, потому что оно выглядит для меня присяжным.

Общие функции очистки кода – это всегда плохая идея. Они будут разорвать ваши данные так или иначе. Никогда не используйте их; санировать данные прямо до того, как они будут использованы, с правильным методом санитарии для предполагаемого использования.

Дубликат: PHP: конечная чистая / безопасная функция

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

Это отломило попытки глупо заменить и может быть довольно безопасным, но может также испортить ваши данные. Зачем изобретать колесо?

Почему бы вам просто не использовать встроенную функцию экранирования / параметризации для вашей базы данных? Я согласен с этим, глядя на присяжные, с помощью функции, созданной людьми, которые создали библиотеку базы данных.

Это небезопасно (нет mysql_real_escape_string или mysql_real_escape_string ), что также не является оптимальным в производительности ( get_magic_quotes_gpc для каждой переменной).