我在我从头开始设计的网站中使用 PHP 和 mySQL。
当用户登录网站时,我应该:
- 进行查询
WHERE username='username' AND password='password'
,在这种情况下,我需要索引用户名和密码字段,如果出现以下情况之一,则可以返回“错误登录”详细信息不正确
或
- 仅进行查询
WHERE username='username'
,在这种情况下,我只需要索引用户名字段,但需要检查服务器端代码中的密码是否匹配
?
更新:
这个问题是关于良好实践的。这是关于在密码字段上添加索引的优点,以便仅当两个细节都正确时我才能从数据库获得响应,是否超过了该索引将占用的空间和大小的缺点。
我不认为我的系统的具体细节(编程语言和数据库类型除外)是相关的,但会有所帮助。
最佳答案
我会选择后者(用户名是“你正在搜索的东西”,即使你在某个阶段进行了明确的密码验证),但如果没有深入熟悉您的特定代码库。
编辑
你提到了索引;索引 both 用户名和密码字段只有在 username
不是唯一的时候才有意义..它应该是。所以这是一个有争议的问题。
关于php - 当用户登录网站时——我应该选择用户名和密码,还是只选择用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5978539/