PHP会话:使非PHP文件需要登录

时间:2014-04-13 13:28:45

标签: php .htaccess login file-type

我正在通过PHP Sessions设置一个非常简单的登录系统的小页面。照常营业:正确的用户名/密码组合将$ _SESSION ['登录']设置为 true 。打开/page1.php或/page2.php时,几行PHP将检查登录状态。 由于我希望它安全可靠,我还希望让未经授权的访问者访问.php以外的文件,例如我的javascript或CSS文件。

我想到了几种方法:

  • htaccess / htpasswd 是最明显的选择,但我正在寻找更有趣的东西。你知道,拥有自定义UI等......
  • mod_rewrite 可以将所有内容重定向到像 fetch.php?url = script.js 这样的PHP文件,然后可以在回显<的内容之前执行我的PHP EM>的script.js 。但是这样我就不得不乱用MIME类型,它会绕过所有其他类型的htaccess保护。对我来说似乎是一种安全风险。
  • 在我的.htaccess中声明 auto_prepend_file 会做类似的工作,但它不会产生任何MIME类型的问题或安全问题。我无法在我的服务器上运行它,可能是我的服务器主机停用了。

你有什么额外的想法吗?我认为这是一个常见问题,所以应该有一个解决方案。提前谢谢!

1 个答案:

答案 0 :(得分:1)

为了保持一致(没有一个通过php登录,一个通过基本身份验证),你需要通过php运行所有资产。但是出于几个性能原因,我强烈建议不要这样做:

  1. 通过PHP与服务器守护程序(nginx / apache)进行延迟服务器文件的更多信息
  2. 在服务器CPU和内存上添加不必要的负载
  3. 浪费时间锁定可用于提供更多请求的流程
  4. 您永远无法使用仅具有
  5. 登录要求的CDN

    我认为我的回答中的主要建议是重新思考您正在做的事情,这要求您的客户登录以访问CSS和JS资产。你在JS中放置密码还是什么?如果是这样,我建议通过PHP传递所有资产,对您的架构进行更深入的评估。