【发布时间】:2018-02-07 03:03:11
【问题描述】:
我想在访问者输入有效密码后创建一个 PHP 会话,这样我就可以向访问者显示一些隐藏的链接,即使在页面重新加载时也是如此。
<?php
if(isset($_POST['submit'])) {
$password = crypt('sumpasswurd', password_hash('rasmuslerdorf', PASSWORD_BCRYPT)); // password
if (hash_equals($password, crypt($_POST['password'], $password))) {
echo 'VALID!';
// CREATE SESSION HERE
} else {
echo 'INVALID';
}
}
if(isset($_SESSION)) echo 'YOU ARE LOGGED IN WITH A VALID PASSWORD!';
?>
<form method="POST" action="">
<input type="text" name="password">
<input type="submit" name="submit" value="OK">
</form>
我怎样才能做到这一点?我的表单加密是否安全?
【问题讨论】:
-
您不需要混淆
password_hash和crypt。password_verify应该用于确认用户输入是否等于已知哈希。 -
那么....密码是什么?它是硬编码在你的文件中的吗?是
rasmuslerdorf,还是sumpasswurd?如果它是这样硬编码的,为什么还要散列呢? -
它是
sumpasswurd,我想如果有人能设法以某种方式看到密码,在这个过程中散列它是一个好习惯 -
如果您对密码进行哈希处理并将哈希存储在文件中;如果你的代码中有文字密码,散列是绝对没有意义的。
标签: php forms session passwords