PHP密码保护页面cookie
我有一个非常简单的PHP密码保护页面。我想添加一个会话cookie,以便浏览器保持日志记录(比如7天) 这是我目前的代码:PHP密码保护页面cookie,php,password-protection,Php,Password Protection,我有一个非常简单的PHP密码保护页面。我想添加一个会话cookie,以便浏览器保持日志记录(比如7天) 这是我目前的代码: <?php $password = "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8"; if (sha1($_POST['password']) == $password) { ?> Password Protected Content <?php } else { ?> <html>
<?php
$password = "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8";
if (sha1($_POST['password']) == $password) {
?>
Password Protected Content
<?php
}
else {
?>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Password: <input type="password" name="password" class="formpart" />
<input type="submit" name="Submit" value="Login" class="login-button" />
</form>
</body>
</html>
<?php
}
?>
密码保护内容
登录页面
请看一下PHP的以下内容:
session\u start()
- 接下来,请看这里:
$\u会话[]-数组
此外,您的代码永远不会跳入受密码保护的内容块
$password = "password";
if (sha1($_POST['password']) == $password) {
假设您输入了正确的密码(“密码”),那么if会询问:
if 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 equals password.
您正在使用哈希,但这里不需要 您的要求是非常经典的做法。您可以在此处阅读教程:
注:
- 比较散列与散列
- 永远不要将纯文本密码保存在cookie中
- 更安全:不要像教程那样将散列密码保存在cookie中。
只需存储一个会话哈希代码并使用DB表会话映射即可
它可以与用户的会话进行交互
希望能有所帮助。至于会话超时,让会话闲置一周通常是一个非常糟糕的主意。我已经研究了session_start()之类的内容,但不知道如何将其集成到上面的代码中。另外,我在这里使用了“password”作为一个简单的例子,我的真实密码是用sha1散列的。只需将session_start()放在php文件头的顶部,并设置一个名为LoggedIn的$_session-entry,然后添加到if行isset($_session[“LoggedIn”])&&$_session['LoggedIn P.S.
P.S.:肯定不是最好的解决方案!赵是对的,跟着这个!“永远不要在[cookie]中保存[the]纯文本密码”——在这种情况下,永远不要在cookie中存储任何密码。不管是不是散列。散列在这方面没有帮助;即使您存储了散列密码,它也会与真实密码authenticationwise一样好。这就是将密码放在cookie中的首要意义。感谢您的更正。该注释是为了phpnerds的教程而添加的。我还建议了一个更安全的解决方案。谢谢你的教程,这正是我所需要的。至于这不是一个安全的解决方案,我知道。如果你的意思是:“只有我,只有我自己才能访问这个应用程序”,那么我想你是对的,但我会出于安全考虑,选择不在cookie中存储密码。这是个坏习惯。记住,旧习难改。