包含/需要非 php 文件

Adr*_*rao 2 php

我知道 PHP 的include/require语句可以从本地路径或 url 将其他 .php 文件附加到脚本中。

今天我尝试包含并要求一个 .ddf(一个文本文件),它工作正常,没有错误或警告。然后 PHP 实际上执行了该文件中的一些代码!

之后,我进入了 PHP 的文档include以查看是否完全支持和安全地包含非 php 文件。事实证明,文档几乎没有提到这个过程 ( include 'file.txt'; // Works.) 就是这样。

所以我问你们,包括非 php 文件安全吗?这也是一种不好的做法吗?

Jon*_*uhn 6

我只想说,这是完全不安全的。是的,只要您信任该页面,从技术上讲,您就可以做到这一点。但是直接在浏览器中拉出的页面不会被解析为 php。任何直接访问 Web 服务器中的文件的人,无论是猜测还是您制作了框架,或者他们只知道一些文件名,都会看到文件的完整来源。暴露您的站点并可能发布敏感信息,例如数据库凭据。另一件要考虑的事情是,人们通常不会允许将 *.php 文件上传到他们的站点,但是想象一下,您允许包含其他文件,并且有人上传了一个名为“someImage.jpg”的文本文件,其中包含php 脚本在其中,出于某种愚蠢的原因,您将其包含在内。人们现在可以在您的服务器上执行脚本。可能包括调用 shell 命令 (exec)。过去常常使用 *.inc 文件来指定包含,但很长一段时间以来这被认为是不好的。