【发布时间】:2016-01-26 22:26:25
【问题描述】:
好的,
所以,我对此有点不确定。
我有一个url参数用户名。
我有这个声明
SELECT * FROM users WHERE user_hash = md5($_GET['username'])
这样安全吗?
在创建帐户时,会存储用户名和密码的 md5 哈希版本。
我很困惑,因为这看起来很简单,如果 md5 停止 sql 注入,为什么用户名和密码不总是以哈希形式保存?
【问题讨论】:
-
你真的不应该使用MD5 password hashes,你真的应该使用PHP的built-in functions来处理密码安全。如果您使用的 PHP 版本低于 5.5,则可以使用
password_hash()compatibility pack。 -
了解prepared 的PDO 和MySQLi 语句,并考虑使用PDO,it's really pretty easy。
-
要以这种方式解决 SQL 注入,您必须对数据库中的所有内容进行编码。
-
我会检索数据,而不是它的哈希值。
标签: php md5 sql-injection