将PHP脚本放在网站根目录之外

时间:2010-03-04 21:02:21

标签: php security

我将如何a)包含一个位于Web根目录之外的php脚本(它真的只是一个简单的../file.php),b)将表单数据发布到Web根目录之外的php脚本。我被引导相信这是php安全的基石。

3 个答案:

答案 0 :(得分:10)

包括一个非常简单的webroot脚本:你将采用与你在webroot下的脚本相同的方式:

include '../myscript.php';
include '../library/myscript.php';
include dirname(__FILE__) . '/../library/myscript.php';

你喜欢的那个;-)
我会选择最后一个人,但是。


发布到webroot之外的脚本是不可能的:Apache 不能提供该脚本(Apache只提供web-root中的内容)

因此,无法通过HTTP访问该脚本;这意味着无法从浏览器访问它。

但是如果要发布到webroot内部的PHP脚本,并且该脚本包含另一个位于webroot之外的脚本,那么第二个文件中的代码将作为第一个脚本执行。这意味着它可以访问$_POST数据 - 表单中输入的数据。

答案 1 :(得分:7)

A)如果您的网络根目录是/ www / myapp / public_html,那么您的public_html / index.php可以包含Web根目录之外的脚本

require '../includefolder/script.php"

B)您无法将数据直接发布到Web根目录之外的脚本。将它们移到那里的全部意义在于它们无法直接进入它们;所有内容都必须从您的Web根目录中显示的可访问脚本传递给他们。

答案 2 :(得分:3)

  1. 就是这样。相对路径。
  2. 如果这与您之前提出的问题相关(您将此文件包含在内),则可以在附带的文件中使用$_POST这样的超级全局,而无需任何额外的努力