在没有db或用户名的情况下使用php密码保护文件夹/页面的最佳方法是什么

2022-08-30 18:00:56

使用php密码保护文件夹的最佳方法是什么,没有数据库或用户名,而是使用。基本上,我有一个页面,该页面将列出组织的联系人,并且需要密码保护该文件夹,而无需为每个用户提供帐户。只有一个密码,该密码会经常更改并分发给组。我知道它不是很安全,但永远不会少我想知道如何做到这一点。以最好的方式。

如果密码在用户正确输入后记住一段时间,那就太好了。


我正在做的大致是David Heggie建议的,除了没有饼干。它看起来确实不安全,但最好有一个糟糕的密码保护,然后根本没有。

这是针对内部网站,人们会有地狱般的时间来记住他们的登录名和密码,永远不会通过注册过程...除非这真的很容易,否则他们根本不会使用该系统。

我想看看这个问题的其他解决方案。

由于用户群由不太精通技术的人组成,还有什么其他方法可以做到这一点。


答案 1

编辑:SHA1不再被认为是安全的。存储的密码哈希值也应加盐处理。现在有更好的解决方案来解决这个问题。


你可以使用类似这样的东西:

//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

这不是一个很好的解决方案,但它可能会做你想要的

编辑

您可以添加一个注销.php页面,例如:

<?php
    session_start();
    $_SESSION['loggedIn'] = false;
?>
You have logged out   

推荐