我是否因为没有过滤标题重定向中的数据而容易受到攻击?
例如:
$foo = $_GET['foo'];
header("Location: /bar.php?foo=$foo");
die();
如果答案是肯定的,那么它们是什么类型的攻击,并且只是通过htmlentities逃避数据是一个可行的解决方案?
$foo = $_GET['foo'];
$foo = htmlentities($foo);
header("Location: /bar.php?foo=$foo");
die();
答案 0 :(得分:0)
未执行网址参数,因此您无法打开攻击。但是,未能对数据进行编码可能会导致参数被错误地解释。您应该使用urlencode()
:
$foo = urlencode($foo);
header("Location: /bar.php?foo=$foo");