функция preg_replace для базы данных и веб-безопасности - PullRequest
0 голосов
/ 03 февраля 2012

Я использовал функцию preg_replace в объектно-ориентированной программе для удаления символов в целях безопасности. Однако в этом поле должны быть разрешены определенные символы, такие как @ или цифры и т. Д. Что я могу поместить в функцию preg_replace, чтобы защитить мою базу данных, но позволить пользователям вводить соответствующие данные. Это такие данные, как номер телефона, имя, имя пользователя и т. Д. Пароль шифруется с использованием функции MD5.

Мне сказали, что использование md5 и preg_replace были плохими идеями. Если да, какие функции мне доступны?

Ответы [ 2 ]

3 голосов
/ 03 февраля 2012

Для защиты базы данных используйте mysql_real_escape_string, mysqli_real_escape_string, привязку параметров PDO в зависимости от того, что вы используете. Не нужно ничего заменять на preg_replace перед размещением в базе данных.

1 голос
/ 03 февраля 2012

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

Алгоритмы типа MD5 и SHA1 предназначены для хеширования. Вы можете использовать его для любых данных, даже для опасного ненадежного ввода, и вы всегда получите шестнадцатеричную строку. Однако, поскольку хеши являются односторонними, вы не можете «расшифровать» их обратно к исходному вводу.

@ dfsq прав - используйте эти методы для безопасного сохранения потенциально опасных данных в вашей базе данных. Единственный случай, когда вы захотите использовать хеш, это что-то вроде паролей, где никто не сможет их расшифровать. (И если вы хешируете свои пароли, убедитесь, что вы их тоже солите!)

...