<a href="javascript:history.go(-1)">Go back</a>安全吗?

时间:2014-01-06 15:58:39

标签: javascript php hyperlink href

我在自定义404错误页面中有一个类似标题中的链接,允许用户像使用浏览器的返回按钮一样转到上一页。我只想问这种链接方法是否安全。我想这是安全的,但我不确定。谢谢你!

1 个答案:

答案 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']."\">&laquo; Back</a>";
}
else
{
    // If not, show a link to your homepage instead
    echo "<a href=\"". "//www.yoursite.com" ."\">Home</a>";
}