【发布时间】:2013-09-16 02:12:14
【问题描述】:
这一切都始于我用来启用语言切换的重定向功能。我使用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 ');";
它在我之前的代码中无法执行,但是谁知道它是否真的易受攻击。
【问题讨论】:
-
呃,是的,任何人都可以向您发送他们想要的任何推荐人。这是一个完全由用户提供的字段。
-
妈妈,是你吗?天哪,我们讨论过这个....不要使用 Referrer 标头。
-
如果您指的是 SQL 注入,这种情况并不是很相似。通过 SQL 注入,恶意用户可以在他们的数据库上执行他们选择的代码。在这种情况下......用户可以控制他们被重定向到哪个页面,这并不是真正的安全问题。
-
我知道要避免引用标头但是我的问题是
header('Location: ' . $_SERVER['HTTP_REFERER']);容易被注入?我试图避免使用 http_referer 但是我不知道如何使用 javascript(这是一个客户端)安全地将用户重定向回他们的当前页面 -
不,那不可能。
标签: php header code-injection