使用没有数据库或用户名的php密码保护文件夹/页面的最佳方法是什么

Bor*_*nov 21 php passwords password-protection

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

如果用户正确输入密码会暂时记住密码,那就太好了.


我做的大概是David Heggie建议的,除了没有cookies.它看起来似乎不安全,但它可能更好,密码保护不好,然后根本没有.

这是内部网站,人们将有一段时间记住他们的登录名和密码,并且永远不会通过注册 过程...除非它真的很容易,他们根本不会使用系统.

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

用户群由不是非常精通技术的人组成,其他方法是什么.

Tom*_*igh 64

你可以使用这样的东西:

//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;
?>
Run Code Online (Sandbox Code Playgroud)

然后在您要保护的每个文件上,放在顶部:

<?php
require('access.php');
?>
secret text
Run Code Online (Sandbox Code Playgroud)

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

编辑

你可以添加一个logout.php页面,如:

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

  • +1用于使用散列算法进行预先计算和存储.但是,SHA2或至少SHA1会更安全. (5认同)
  • 我尝试使用此功能,但每次收到"密码不正确".我错过了什么吗? (2认同)