因此,我已經被告知,我已經開始工作的應用程序在跨站點僞造請求(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