如何在servlet中允许特定的referrer页面?

时间:2014-08-16 14:45:38

标签: servlets http-referer

我有一个HTML页面:

<form method="post" action="Servlet" name="frm">
    Enter your name: <input type="text" name="name" id="name" /><br/>
    <input type="submit" name="sub" value="Submit" />
</form>

servlet将从该HTML页面获取值,但我希望servlet不接受来自此HTML页面以外的外部页面。 如果请求不是来自HTML页面,则会显示一条警告消息,指出用户不允许以这种方式访问​​该页面。我该怎么办?

1 个答案:

答案 0 :(得分:1)

有很多方法可以实现这个目标

方式1:

将以下代码放在sevrlet中

if(new URI(request.getHeader("referer")).getPath()=="static html url")
{ 
  //allow
}
else
{
  //redirect to some other page
}

方式2:

  1. 当用户首次登录时生成随机令牌并将其保存在会话变量中
  2. 当您加载此特定html页面时,将会话变量作为查询字符串
  3. 传递
  4. 当您将表单发布到servlet时,将此值与其他值一起发布
  5. 比较会话中的值和通过post接收的值如果两者都相等则允许将页面转移到注销或其他页面/