PHP magic constants允许您访问正在执行的当前PHP文件,当前函数的名称等信息。
虽然此数据不是用户输入直接,但它肯定会受到用户输入的影响(例如:通过访问特定路径来影响__dir__
和__file__
等但是,在大多数情况下,远程用户输入不可能准确地影响这些变量。
例如,如果您要访问example.com/<script>window.alert("XSS");</script>
,则不会导致该服务器上包含恶意JavaScript的__file__
变量。相反,它将包含404 ErrorDocument的路径(假设XSS示例不是服务器上的实际路径)。
恶意数据可以通过哪些其他方式进入这些变量?
我是否还有其他与PHP魔术常量相关的安全注意事项?
对于上下文,这是关于服务于静态PHP页面的Apache服务器,网站上没有其他用户输入(例如:表单,文件上传,cookie等)。
答案 0 :(得分:-2)
没有安全隐患。这些常量来自服务器数据(即您的PHP文件路径)。那些不能由最终用户控制。