1

我知道这听起来可能有点愚蠢。但是我从 github 下载了一个脚本,并意识到它的一个表单提交实际上将表单输入引用到一个文件夹/目录而不是单个 php 文件。

我现在的问题是,如果是这种情况,是否意味着文件夹本身中的所有脚本都能够获得我的 $_POST 表单输入结果?

4

2 回答 2

4

它的表单提交实际上将表单输入引用到文件夹/目录

在 HTTP URI 中没有这样的东西。所有 URI 都将指向一个资源。由服务器决定如何响应该资源。

看起来像 URI 中的目录的东西可能会映射到文件系统上的真实目录。Web 服务器通常会使用DirectoryIndex指令之类的东西来使用默认文件。

它可能会映射到上面几个级别的文件,然后由它处理:http://example.com/foo.php/bar/baz/从URIfoo.php读取并对其进行处理。/bar/baz/

它可能有一个显式映射(例如使用ScriptAlias指令),在内部将它映射到另一个脚本。

它可能有一个程序映射(例如,使用 mod_rewrite),它使用正则表达式将其映射到其他东西(可能将“目录”分解为不同的查询字符串参数)。

还有很多其他的可能性。

我现在的问题是,如果是这种情况,是否意味着文件夹本身中的所有脚本都能够获得我的 $_POST 表单输入结果?

从理论上讲,可以将服务器配置为将 POST 请求传递到文件系统目录中的每个脚本,然后返回复合响应。不过,我从未见过有人尝试过(或想尝试过)。上述解释之一的可能性更大。

于 2012-09-16T14:04:18.200 回答
3

假设你在谈论类似的事情:

<form method='post' action='some/directory'>

它期望由 Web 服务器作为目录索引提供的文件(例如index.php)接收表单 post 并处理输入。因此,您不是将表单发布到目录,而是发布到访问目录时 Web 服务器执行的默认文件。

标签的action=属性<form>只需要是一些相对或绝对的 URI - 它不必指向实际存在的文件。由 Web 服务器根据目录索引规则、重写规则等来确定要执行的脚本。

于 2012-09-16T13:57:59.800 回答