PHP中的MySQL密码比较
下午好。基本上,我有一个带有登录表单的页面,要求用户输入用户名和密码。然后我将这些用户名和密码的哈希版本与MySQL中的密码数据库进行匹配 现在,鉴于我不知道黑客/指数过滤器能做什么,我只想永远不要从数据库中检索正确密码的哈希版本,并在服务器上进行比较。我浏览了谷歌和MySQL教程网站,但似乎找不到一个明确的答案(我可能在这里淹死了)。基本上这就是我想做的:PHP中的MySQL密码比较,php,mysql,passwords,Php,Mysql,Passwords,下午好。基本上,我有一个带有登录表单的页面,要求用户输入用户名和密码。然后我将这些用户名和密码的哈希版本与MySQL中的密码数据库进行匹配 现在,鉴于我不知道黑客/指数过滤器能做什么,我只想永远不要从数据库中检索正确密码的哈希版本,并在服务器上进行比较。我浏览了谷歌和MySQL教程网站,但似乎找不到一个明确的答案(我可能在这里淹死了)。基本上这就是我想做的: 用户输入用户名+密码 我通过一个存储过程将这些信息转发给MySQL 如果找到匹配项,存储过程将返回TRUE/FALSE(1或0无关紧要)
- 用户输入用户名+密码
- 我通过一个存储过程将这些信息转发给MySQL
- 如果找到匹配项,存储过程将返回TRUE/FALSE(1或0无关紧要)
非常感谢您抽出时间。我不太清楚您的目的是什么,但如果我正确理解了问题,您想做如下操作:
SELECT password FROM users WHERE username = '$username';
然后将密码与PHP进行比较,您担心这可能会成为一个安全问题
我不认为从安全角度看这有什么区别。检查密码是否正确的常用方法是:
SELECT COUNT(*) FROM users WHERE username = '$username' AND password = '$hashedPassword';
如果count==1,则用户提供了正确的密码。您可以看到,如果密码不匹配,MySQL在任何时候都不会给出实际密码。即使有,黑客也几乎不可能获得这些信息。如果可以的话,他们已经劫持了你的服务器,这是你最小的问题。我不太确定你在找什么,但是如果我正确理解了这个问题,你想这样做:
SELECT password FROM users WHERE username = '$username';
然后将密码与PHP进行比较,您担心这可能会成为一个安全问题
我不认为从安全角度看这有什么区别。检查密码是否正确的常用方法是:
SELECT COUNT(*) FROM users WHERE username = '$username' AND password = '$hashedPassword';
如果count==1,则用户提供了正确的密码。您可以看到,如果密码不匹配,MySQL在任何时候都不会给出实际密码。即使有,黑客也几乎不可能获得这些信息。如果可以的话,他们已经劫持了你的服务器,这是你的最小问题。在向数据库发送凭据时只需使用
mysql\u real\u escape\u string
。这将阻止SQL注入
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
将凭证发送到数据库时,只需使用mysql\u real\u escape\u string
。这将阻止SQL注入
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
我现在就是这么做的,但我担心安全问题。如果这是非常安全的,我很乐意接受它作为正确的答案。谢谢:)是的,在MySQL和PHP之间传递数据是安全的。这就是我目前所做的,但我担心的是安全性。如果这是非常安全的,我很乐意接受它作为正确的答案。谢谢:)是的,在MySQL和PHP之间传递数据是安全的。