使用PHP_SELF获取页面名称 - 危险?

时间:2010-08-17 23:43:14

标签: php security

我正在考虑使用PHP_SELF来获取用户当前正在访问的页面的名称。我很清楚在表单操作等地方使用PHP_SELF的危险,虽然我不确定在hrefs中使用它会有什么影响?但这与主要问题不同。 。 。反正。

使用PHP_SELF获取用户所在的页面并使用str_replace()获取我需要的信息是否有任何危险?我想不出任何问题,但这当然是个好地方。 ;)

谢谢!

2 个答案:

答案 0 :(得分:2)

是的,可能是因为它是攻击者控制的变量。它可能导致xss等漏洞。

<?php print $_SERVER['PHP_SELF']?>

http://localhost/self.php/<script>alert(1)</script>

如果可能,您应该使用攻击者无法控制的变量,如$_SERVER["SCRIPT_FILENAME"]。还有其他几个,只需查看phpinfo()

答案 1 :(得分:1)

如果您需要整个网址,请查看this tutorial。否则,使用$ _SERVER ['REQUEST_URI']来获取当前页面的URI(如果url是example.com/foo/bar.php,它会给你foo / bar.php)。