【发布时间】:2026-02-15 04:30:02
【问题描述】:
我对 php 安全性相当陌生,对于我的网站,我是注册并登录的,我想添加他们的 md5 密码,但我找不到任何有明确指南的地方添加到注册中,以及需要添加到登录文件和/或数据库中的内容,正如我所说,在网络安全方面我对 php 相当陌生,所以我需要一些帮助,这里是我的注册表单上有什么:
$error = $user = $pass = "";
if (isset($_SESSION['user'])) destroySession();
if (isset($_POST['user']))
{
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);
if ($user == "" || $pass == "")
{
$error = "Not all fields were entered<br /><br />";
}
else
{
$query = "SELECT * FROM members WHERE user='$user'";
if (mysql_num_rows(queryMysql($query)))
{
$error = "Username already taken<br /><br />";
}
else
{
$query = "INSERT INTO members VALUES('$user', '$pass')";
queryMysql($query);
die("<h4>Account created</h4>Please Log in.");
}
}
}
我只需要一个示例或一个很好的指南,说明我需要做什么才能使其正常工作。
【问题讨论】:
-
我没有加盐,我只是用 SHA-1 对密码进行哈希处理,除非 NSA 关注我的用户数据库,否则就足够了,这不太可能发生。
-
我认为你真的应该阅读准备好的语句,并进一步了解像 Doctrine 这样的“高抽象”解决方案。
-
@Giacomo:不会。您可以在合理的时间(几小时或几天)内破解云端的 SHA1。密码应始终使用强哈希函数(如 sha512)正确加盐和哈希。
-
哼我知道...但是您必须将安全问题扩展到实际的安全需求。 “我最喜欢的宠物论坛”!=“网上银行服务”。除非你想做老师的宠物。
-
你不应该使用像sanitizeString()这样的函数