因此,我已经被告知,我已经开始工作的应用程序在跨站点伪造请求(CSFR)方面提供了预防措施, ,但不适用于获取请求。java - 我如何防止跨站点伪造请求
我也被告知,我可以获得原点的来源和目标的来源,比较每个的主机,并根据它们是否匹配或不做什么。到目前为止,我在做了一些研究之后已经有了下面的内容,但我还没有,可以使用一些额外的帮助。我对这个职业很陌生,所以我甚至不确定自己是否在正确的轨道上。
String refererHost = ((HttpServletRequest) request).getHeader("referer");
String targetHost = request.getServerName();
try {
refererHost = new URI(refererHost).getHost();
if(!refererHost.equals(targetHost))
{
((HttpServletResponse) response).sendRedirect(((HttpServletRequest)request).getContextPath()+ADMIN_LOGOFF_URL);
}
} catch (MalformedURIException | NullPointerException e) {
request.getRequestDispatcher(ADMIN_LOGOFF_URL).forward(request, response);
}
GET请求不应该根据HTTP规范影响状态。为获取请求防范CSRF的最佳方法是坚持这一点。至于你的代码,你需要描述什么不按照你期望的方式工作。 – Taylor