我知道这听起来可能有点愚蠢。但是我从 github 下载了一个脚本,并意识到它的一个表单提交实际上将表单输入引用到一个文件夹/目录而不是单个 php 文件。
我现在的问题是,如果是这种情况,是否意味着文件夹本身中的所有脚本都能够获得我的 $_POST 表单输入结果?
它的表单提交实际上将表单输入引用到文件夹/目录
在 HTTP URI 中没有这样的东西。所有 URI 都将指向一个资源。由服务器决定如何响应该资源。
看起来像 URI 中的目录的东西可能会映射到文件系统上的真实目录。Web 服务器通常会使用DirectoryIndex
指令之类的东西来使用默认文件。
它可能会映射到上面几个级别的文件,然后由它处理:http://example.com/foo.php/bar/baz/
从URIfoo.php
读取并对其进行处理。/bar/baz/
它可能有一个显式映射(例如使用ScriptAlias
指令),在内部将它映射到另一个脚本。
它可能有一个程序映射(例如,使用 mod_rewrite),它使用正则表达式将其映射到其他东西(可能将“目录”分解为不同的查询字符串参数)。
还有很多其他的可能性。
我现在的问题是,如果是这种情况,是否意味着文件夹本身中的所有脚本都能够获得我的 $_POST 表单输入结果?
从理论上讲,可以将服务器配置为将 POST 请求传递到文件系统目录中的每个脚本,然后返回复合响应。不过,我从未见过有人尝试过(或想尝试过)。上述解释之一的可能性更大。
假设你在谈论类似的事情:
<form method='post' action='some/directory'>
它期望由 Web 服务器作为目录索引提供的文件(例如index.php
)接收表单 post 并处理输入。因此,您不是将表单发布到目录,而是发布到访问目录时 Web 服务器执行的默认文件。
标签的action=
属性<form>
只需要是一些相对或绝对的 URI - 它不必指向实际存在的文件。由 Web 服务器根据目录索引规则、重写规则等来确定要执行的脚本。