我有一个登录当前网站的服务,我想知道的是 - 有什么特别的方法可以称为最安全吗?
请允许我更好地解释一下我的系统:
我目前有一个带有用户表的 PHP MySQL 数据库。用户名和密码都存储为 VARCHAR(我知道这不是最好的密码)。
在注册表单方面,我通过只允许输入 a-Z 0-9 并限制字符数来规范密码和用户名的选择。在登录表单方面,我使用 mysql_real_escape_string 停止攻击,并使用 POST 到 iFrame 而不是 AJAX。
我觉得我正在尽我所能来防止来自表单端的攻击,而不是来自数据库端的攻击。我知道您可以在进入数据库时将密码存储类型更改为加密,但我不明白的是我将如何查询这个加密的字符串。
鉴于我所描述的内容,您会在增加安全性方面提出什么建议,为什么?您选择了哪些方法来防止黑客攻击和攻击?您能从我所描述的内容中看出任何明显的安全漏洞吗?也许最重要的是,考虑到我在 Web 开发游戏中的时间不长并且经验不多,我可以做些什么来纠正这些问题?
(请记住,我不是在创建一个系统来存放 secret 或煽动性数据)
最佳答案
首先,不要在数据库中存储明文密码。因此,在注册新用户时,将他们的密码输入为 hash . MD5 最常用于此。我建议用盐。所以为了存储:
$password = md5($yoursalt . $_POST['password']);
现在当用户想要登录时,您的帖子中再次有了他们的密码。现在创建与以前相同的散列并在数据库中搜索此散列(使用他们的用户名)。这样您就不会存储他们的实际密码。
关于PHP/MySQL 安全登录和 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529446/