我在自定义404错误页面中有一个类似标题中的链接,允许用户像使用浏览器的返回按钮一样转到上一页。我只想问这种链接方法是否安全。我想这是安全的,但我不确定。谢谢你!
答案 0 :(得分:1)
如果用户禁用了JavaScript,我可以说一个不安全的用例。在这种情况下,您必须使用HTTP referer
header field's值作为锚元素上的href
值,使用服务器端代码动态创建链接。
另一件需要考虑的事情是,如果用户来自带有HTTP重定向的页面,那么用户会遇到永无止境的来回循环。
修改强>:
如上所述,您可以使用$_SERVER['HTTP_REFERER']
但文档说明
..这是由用户代理设置的。并非所有用户代理都会设置此项, 有些提供了将HTTP_REFERER修改为功能的功能。在 简而言之,它无法真正被信任。
实际上,大多数浏览器确实设置正确,并且看到这不是关键任务,我认为如果你使用它是安全的。您还可以考虑未按如下方式设置的浏览器:
if(isset($_SERVER['HTTP_REFERRER']))
{
// Show a Back button link, if the referrer is available
echo "<a href=\"".$_SERVER['HTTP_REFERRER']."\">« Back</a>";
}
else
{
// If not, show a link to your homepage instead
echo "<a href=\"". "//www.yoursite.com" ."\">Home</a>";
}