1. 程式人生 > >Web專案中host頭攻擊漏洞

Web專案中host頭攻擊漏洞

===============
Web專案在通過綠盟軟體掃描的時候,提示“檢測到目標URL存在http host頭攻擊漏洞”。漏洞的本意是,HTTP請求帶了HOST頭,WEB取了該HOST頭作進一步動作,例如拼接URL。如果這個HOST是黑客非法偽造的,比如evil.com,那麼拼接之後的URL就可能是http://evil.com/key=?value=,從而導致己方網站資訊的洩露。解決方法如下:
設定一個過濾器,使用白名單對每次訪問網站的HOST進行過濾。即當訪問時,獲取訪問的Host,並與白名單中的資訊進行比對,如果在白名單中有匹配的Host,則正常訪問,否則,拒絕訪問。

package
... public class ExampleFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest hreq = (HttpServletRequest) request; HttpServletResponse hres = (HttpServletResponse) response; //取請求Host
String hostinfo = hreq.getHeader("header").trim(); //讀取白名單 String[] whiteHostList = getWhiteList(); //進行比對 for(String whiteHost : whiteHostList) { if(whiteHost.equals(hostinfo)) { //說明訪問者在白名單中 chain.doFilter(request,response); } else
{ setMessage("非法Host訪問,訪問無效!"); return; } } } }