1

PHP 的魔法常量允许您访问诸如当前正在执行的 PHP 文件、当前函数的名称等信息。

虽然这些数据不是用户直接输入的,但它肯定会受到用户输入的影响(例如:通过访问特定路径来影响__dir____file__等),但是在大多数情况下,远程用户输入不可能准确地影响这些变量.

例如,如果您要访问example.com/<script>window.alert("XSS");</script>,这不会导致__file__该服务器上的变量包含恶意 JavaScript。相反,它将包含您的 404 ErrorDocument 的路径(假设 XSS 示例不是您服务器上的实际路径)。

恶意数据还有哪些其他方式可以进入这些变量?

我是否遗漏了与 PHP 魔术常量相关的任何其他安全注意事项?

就上下文而言,这是关于服务于静态 PHP 页面的 Apache 服务器,站点上没有额外的用户输入(例如:表单、文件上传、cookie 等)。

4

1 回答 1

-2

不存在安全风险。这些常量来自服务器数据(即您的 PHP 文件路径)。这些不能由最终用户控制。

于 2018-03-30T23:25:52.527 回答