【问题标题】:Securing php files on my website保护我网站上的 php 文件
【发布时间】:2015-01-13 12:48:15
【问题描述】:

在我的网站上,我有一个 login.php 文件,以便我可以保护我的管理仪表板。它可能不是最安全的,因为我只是比较两个哈希值,但我想知道如何保护我的其他 php 文件。截至目前,php 文件仅通过管理仪表板运行,并且这些页面顶部有一个“需要 login.php”功能。但是,这些页面运行的 php 文件没有任何类型的锁定。我是否应该在这些文件中也需要 login.php 文件,还是不应该担心它们?

【问题讨论】:

  • 把它们放在公共 webroot 之外,这样没有人可以直接访问它们!
  • 听起来你可以看看front controller pattern。正如@deceze 所说,您可以将所有 php 文件放在文档根目录之外。使前端控制器成为文档根目录中唯一可访问的脚本,检查那里的登录是否有效,如果经过身份验证,请包含来自前端控制器的正确 php 脚本。
  • 我不久前回答了一个类似的问题,它可能会对您有所帮助。 How to secure a php file.

标签: php html security


【解决方案1】:

您可以简单地使用 $_SESSION 全局变量,因为这些其他页面仅可从您的仪表板访问,这意味着未通过您的管理页面登录的任何人都不会设置所需的会话令牌。然后,您可以简单地检查您想要保护的那些页面上是否存在此类令牌。

更多关于 PHP 会话 here

【讨论】:

  • 我担心的是是否有人可以从网站上的其他地方访问这些文件并修改我的数据库。
  • 确保您有一个“特殊”$_SESSION 变量,该变量只能通过您的登录页面(您的管理页面)设置。在您想要保护的其他 php 文件中,只需检查 isset($_SESSION['specialToken']) 是否存在,如果未设置该会话令牌,则将此类流量丢弃(可能是您的主页)。然后,您只需确保仅在验证此类流量时才在您的管理页面上设置令牌
  • 好吧,这就是我的想法;我在 html 页面中有 SESSION 检查器,但在它们调用的 PHP 文件中没有,所以我将它添加到 PHP 文件中。..
  • 好吧,我不认为您可以在 html 页面中设置 php 会话变量,当然除非您已将 php 配置为也解析 html 文件(这并不酷)。但我相信您会了解整个情况以及在您的特定场景中 php 会话有多方便
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多