【问题标题】:Hiding PHP Files Outside WWW for Security将 PHP 文件隐藏在 WWW 之外以确保安全
【发布时间】:2011-03-26 03:29:32
【问题描述】:

我在自己的小框架中有一个“globabVars.php”文档,其中包含数据库连接变量等...我认为将其存储在面向 Web 的目录之外会更安全一些.但是,然后我在想,它真的更安全吗?我的意思是,如果有人能够查看我的 .php 文件作为一个整体(没有服务器处理它们),他们将在我的服务器内查看我的所有文件......

想法?

【问题讨论】:

    标签: php security


    【解决方案1】:

    如果您不小心错误配置了 apache,将配置文件移到 Web 根目录之外可以防止该文件泄露。例如,如果您删除 Apache 的 mod_php,那么所有 .php 文件都将被视为文本文件。由于这个原因,我已经看到配置文件移动到生产系统上的 Web 根目录之外,它确实阻止了文件泄露! (管理员在更新期间冻结了配置,doah!)。虽然这并不经常发生。

    如果攻击者可以控制以下函数之一的路径:file_get_contents()fopen()readfile()fgets(),那么他就可以读取您系统上的任何文件。您还必须担心sql注入。例如 MySQL 下的这个查询可以用来读取文件:select load_file("/etc/passwd")

    要缓解此问题,请从 PHP 使用的 MySQL 用户帐户中删除 FILE 权限。也做一个chmod 500 -R /path/to/web/root,最后两个零可以防止任何其他帐户访问文件。您还应该使用 chown www-data -R /path/to/web/root 跟进它,其中 www-data 是执行 php 的用户帐户,您可以通过 <?php system('whoami');?> 来解决这个问题。

    【讨论】:

    • Rook Rad :) 让我问你这个。如果我对服务器端程序的访问仅限于管理员中通常可用的“cpanel”,我假设您熟悉它,您认为我将能够删除 FILE 权限或 chmod 该路径吗?我觉得我的访问权限仅限于网络以下一级......而且我认为这不是 PHP 所在的地方。这是我应该与服务器管理员讨论的事情吗?顺便说一句,我正在使用 hostgator...关于它们的任何恐怖故事?
    • @Jascha 我还没有听说过有关 hostgator 的任何消息,尽管大多数托管公司已经锁定了您的 MySQL 帐户。它易于测试、尝试并触发 load_file 查询。是的,您可以使用 cPanel chmod 文件。您可以使用 phpmyadmin 更改 MySQL 权限,但您需要 GRANT 权限,这是您不应该拥有的。
    【解决方案2】:

    这意味着默认情况下没有人可以通过 URL 访问它。

    如果.htaccess 在您的文档根目录中,您可以隐藏它,但是将其存储在文档根目录之上会更安全。

    如果您的应用程序容易出现directory traversal attacks,您可以通过 PHP 读取它。

    【讨论】:

      【解决方案3】:

      是的,你是对的。差别很小。

      【讨论】:

      • 弹片这是我的想法。我对 ftp 安全性不太熟悉,但我认为我可以在脚本的前端做所有我想要的花哨的技巧来防止攻击,而有人可以通过 ftp 从后门出现。特别是考虑到我的一些客户密码是一回事。 (不要告诉任何人)。
      • @Jascha 是的,这是事实。如今,木马程序从客户端计算机窃取 ftp 密码,然后感染您的站点。但这不能成为不使用任何其他保护措施的理由。
      猜你喜欢
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 2018-06-30
      • 1970-01-01
      • 2011-12-18
      • 2011-06-29
      • 1970-01-01
      相关资源
      最近更新 更多