使用 PHP 魔术常量有哪些安全风险?

What are the security risks of using PHP magic constants?

PHP的magic constants允许您访问诸如当前正在执行的PHP文件、当前函数的名称等信息

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

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

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

关于 PHP 魔法常量,是否还有我遗漏的任何其他安全注意事项?

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

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