0

我无法在 stackoverflow 上找到正确的答案。但也许只是我很傻。

我有一个用户表单,用户可以在其中上传文本文件。我们正在做一些明智的事情,比如在 htdocs 之外保存和重命名文件 - 但我如何检查上传的文件是否包含一些可能有害的 PHP 片段?还有一个文本框保存为文本文件,我们想检查用户是否也在其中提交了 php 代码。

像检查“ <?php”一样愚蠢吗?是否可以以某种形式的字节形式重写这将使该检查无用。

请注意,该文件可能包含有效的“<”和“>”字符作为输入的一部分——我不想转义这些字符,因为这样我的数据处理应用程序将无法在这个经过清理的表单上运行。

4

2 回答 2

2

您不需要这样做:您只需要注意输入永远不会在可以执行 PHP 代码的上下文中使用。

如果您正在接收表单数据,请确保您eval()在某些时候没有接收到内容。除此之外,你应该没事。

如果您正在接收文件,请确保将它们存储在 PHP 解释器无法执行的位置。参见例如阻止执行上传的 php 文件?还要确保您永远不会include()使用用户上传的文件 - 如果它们是您需要在某些时候显示的文件,请使用file_get_contents()(并且不要忘记为 HTML 输出清理它们)。

于 2013-02-07T12:37:02.467 回答
-1

用下划线替换文件名和扩展名之间的点以确保。

于 2013-02-07T12:43:15.090 回答