使用没有数据库或用户名但使用 php 密码保护文件夹的最佳方法是什么?基本上我有一个页面将列出组织的联系人并且需要密码保护该文件夹而不需要为每个用户提供帐户。只有一个密码会经常更改并分发给组。我知道它不是很安全,但我仍然想知道如何做到这一点。以最好的方式。
如果密码在用户输入正确后能记住一段时间就好了。
除了不使用 cookie 外,我大致按照 David Heggie 的建议进行操作。它看起来确实很不安全,但最好有一个糟糕的密码保护,而不是根本没有。
这是针对内部网站的,人们会花很多时间记住他们的登录名和密码,并且永远不会通过注册过程...除非真的很容易,否则他们不会使用该系统根本。
我想看看这个问题的其他解决方案。
由于用户群由不太懂技术的人组成,还有什么其他方法可以做到这一点。
最佳答案
编辑:SHA1 不再被认为是安全的。存储的密码哈希也应该是 salted .现在有更好的解决方案来解决这个问题。
你可以这样使用:
//access.php
<?php
//put sha1() encrypted password here - example is 'hello'
$password = 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d';
session_start();
if (!isset($_SESSION['loggedIn'])) {
$_SESSION['loggedIn'] = false;
}
if (isset($_POST['password'])) {
if (sha1($_POST['password']) == $password) {
$_SESSION['loggedIn'] = true;
} else {
die ('Incorrect password');
}
}
if (!$_SESSION['loggedIn']): ?>
<html><head><title>Login</title></head>
<body>
<p>You need to login</p>
<form method="post">
Password: <input type="password" name="password"> <br />
<input type="submit" name="submit" value="Login">
</form>
</body>
</html>
<?php
exit();
endif;
?>
然后在您要保护的每个文件上,放在顶部:
<?php
require('access.php');
?>
secret text
这不是一个很好的解决方案,但它可能会做你想做的事
编辑
您可以添加一个 logout.php 页面,例如:
<?php
session_start();
$_SESSION['loggedIn'] = false;
?>
You have logged out
关于php - 在没有数据库或用户名的情况下使用 php 密码保护文件夹/页面的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/286938/