我有一个作为 CGI 程序运行的 PHP 脚本,HTTP Authenticate
header 被吃掉并吐出。所以我想实现某种基于 FORM 的身份验证。作为附加约束,没有数据库,因此无法存储 session 数据。
我非常愿意拥有主用户名和密码。我只需要保护应用程序免受不知道这些凭据的入侵者的侵害。
那么您将如何实现呢?
cookies ?
我可以提交表单,如果它通过验证,我可以发回一个 cookie,它是 IP 地址的哈希值和密码。然后我可以阻止页面呈现,除非它正确解密。但我不知道如何在 PHP 中实现它。
最佳答案
您可以通过几种方式做到这一点。
- htaccess -- 让您的网络服务器处理保护有问题的页面(虽然不完全基于 cgi 表单)。
- 使用 cookie 和某种散列算法(md5 足够好)将密码存储在一个平面文件中,文件中的每一行都是 username:passwordhash。确保 salt与彩虹表相比,您的哈希值具有额外的安全性。 (这个方法有点幼稚...如果你走这条路,要非常注意安全)
- 使用类似 sqlite 的东西数据库只是为了处理身份验证。 Sqlite 足够紧凑和简单,即使您不想要大型数据库后端,它仍然可以满足您的需求。
理论上,即使没有数据库,您也可以将 session 数据存储在平面文件中。
关于php - 如果没有后备数据库,您将如何实现基于 FORM 的身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376/