如何"防篡改"是PHP中的$ _SERVER变量?

CLJ*_*CLJ 8 php security tampering

通过信任$ _SERVER变量数组的内容以使用$ _SERVER ['PHP_SELF']获取php文件的名称,我是否会冒很大的安全风险?

roo*_*ook 3

许多但不是全部 $_SERVER 变量都是攻击者控制的。例如,$_SERVER['SCRIPT_NAME']is safe 其中 as$_SEVER['PHP_SELF']是一个很危险的变量,并且通常是 xss 的来源:

<?php
echo $_SEVER['PHP_SELF'];
?>
Run Code Online (Sandbox Code Playgroud)

概念验证:

http://localhost/self.php/<script>alert(/xss/)</script>
Run Code Online (Sandbox Code Playgroud)

通过查看phpinfo很容易看出此漏洞的作用。