【问题标题】:How to prevent including remote server file or shared server file?如何防止包含远程服务器文件或共享服务器文件?
【发布时间】:2012-09-06 06:58:17
【问题描述】:

我在我的系统上使用 Xampp 服务器,通过在我的系统的 Xampp 服务器上调整一些 PHP.INI 设置,我发现我可以从我的远程托管站点中包含我的 php 文件。尽管我无法访问远程文件上的变量,但我仍然害怕专业的黑客可以访问这些变量。我很害怕,因为 url 显示了文件的路径。我知道我可以使用 .htaccess 隐藏文件的扩展名,但仍然任何人都可以猜到这些文件类型,因为只有少数类型的服务器端脚本主要由 web 开发人员使用。请让我知道是否有任何方法可以防止将我的服务器文件包含在远程服务器上或在我的站点所在的同一台服务器上运行的服务器上,或者没有什么可担心的。

【问题讨论】:

  • 简单地说,不要这样做。那么就没有什么好担心的了。将 ini 设置恢复为默认设置,然后忘记它们的存在。

标签: php security code-access-security


【解决方案1】:

php.ini 禁用 url 包括这样的

allow_url_include = Off

【讨论】:

  • 是的,但这已经在我的远程服务器上设置为关闭,我只是在我的系统上将其打开以访问远程文件。
  • 如果在本地机器上关闭它,那么在本地机器上打开它不会妨碍远程服务器文件。所有易受攻击的都是您的本地机器,所以没有必要担心。
  • 感谢萨宾确认。
【解决方案2】:
allow_url_include = On

this option 所做的就是让写出这样的代码:

include 'http://example.com/foo.php';

它确实不允许允许其他人包含您服务器上的文件。
你的担心完全没有根据。

当有人通过 URL 访问它们时,您的 服务器上的任何 .php 文件将始终由 Apache 执行。没有人可以像那样看到您的源代码。 (假设 Apache 没有损坏或配置严重错误。)

PS:allow_url_include 无论如何都应该关闭。这是个坏主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多