这一切都始于我用来启用语言切换的重定向功能。我header('Location: ' . $_SERVER['HTTP_REFERER']);
用来将用户重定向回他通过 javascript 重定向的上一个页面window.location.href
。
我试过了
$_SERVER['HTTP_REFERER']=');';
header('Location: ' . $_SERVER['HTTP_REFERER']);
它重定向到错误页面http://localhost/);
但是我知道可能有一些技巧可以使它泄漏,因此我想问是否有任何注入方法?如果代码不易受到攻击,我不介意让用户修改他们的 http_referer 并发送到错误页面。
更新
我担心的是用户是否可以做类似的事情
$_SERVER['HTTP_REFERER']=')';
$mysqli->query($query);
header('Location: http://localhost ');
如同
$_SERVER['HTTP_REFERER']=");$mysqli->query($query);header('Location: http://localhost ');";
它在我之前的代码中不可执行,但是谁知道它是否真的易受攻击。