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

标签 php passwords password-protection

使用没有数据库或用户名但使用 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/

相关文章:

php - 将可变长度 URL 映射到数字 (0...3) 的简单哈希函数

php - 用具体值模拟 atLeastOnce,其余的不重要

c# - 这种密码生成方案可能会受到哪些类型的攻击?

msbuild - 如何安全地存储要在 MSBuild 中使用的 .pfx 密码?

PHP计算除法的整数

php - Fancybox 图像在新窗口/选项卡中打开

php - 存储用作散列密码一部分的散列函数是不好的做法吗?

delphi - 如何隐藏编辑框中的密码文本?

php - 如何在 PHP 脚本文件中安全存储用户名密码

python - 我可以使用哪些 Python 工具来编写受密码保护的网页的抓取工具?