使用filter解決xss攻擊的實現思路,其實是通過正則的方式對請求的引數做指令碼的過濾,但是這需要對所要過濾的指令碼做很多的列舉。下面這個demo是我在工作中用到的,希望對大家有所幫助。
public class xssfilter implements filter
/*** 通過url只能訪問action
* 覆蓋getparameter方法,將引數名和引數值都做xss過濾。
* 如果需要獲得原始的值,則通過super.getparametervalues(name)來獲取
* getparameternames,getparametervalues和getparametermap也可能需要覆蓋
*/@override
public string getparameter(string name)
return value;
}@override
public mapgetparametermap()
entry.setvalue(newvalues.toarray(new string[newvalues.size()]));}}
}return map;
}@override
public string getparametervalues(string name)
protected string xssencode(string values)
return escapsevalues;
}return values;
}/**
* 覆蓋getheader方法,將引數名和引數值都做xss過濾。
* 如果需要獲得原始的值,則通過super.getheaders(name)來獲取
* getheadernames 也可能需要覆蓋
*/@override
public string getheader(string name)
return value;
}/**
* 將容易引起xss漏洞的半形字元直接替換成全形字符
* * @param s
* @return
*/private static string xssencode(string s)
stringbuilder sb = new stringbuilder(s.length() + 16);
for (int i = 0; i < s.length(); i++)
}string value = stripxss(sb.tostring());
return value;
}/**
*過濾script指令碼
* @param value
* @return
*/private static string stripxss(string value)
return value;
}// public static void main(string args)
/*** 獲取最原始的request
/*** 獲取最原始的request的靜態方法
xss攻擊解決方案
xss攻擊 全稱跨站指令碼攻擊,是為不和層疊樣式表 cascading style sheets,css 的縮寫混淆,故將跨站指令碼攻擊縮寫為xss,xss是一種在web應用中的計算機安全漏洞,它允許惡意web使用者將 植入到提供給其它使用者使用的頁面中。web環境 表單輸入框輸入以下攻擊指令碼,提...
技術總結 使用Filter進行XSS過濾
一般來說,系統進行表單資料處理時都需要解決類似xss攻擊以及轉義這樣的問題,這樣的問題具有普遍性,不可能在每個提交表單資料的處理中都加入重複的處理 通常通過 filter 或 interceptor 來攔截處理。這裡介紹下通過 filter 進行xss過濾的方法。流程 使用filter攔截請求,將普...
xss攻擊總結
顧名思義,非持久型xss攻擊是一次性的,僅對當次的頁面訪問產生影響。非持久型xss攻擊要求使用者訪問乙個被攻擊者篡改後的鏈結,使用者訪問該鏈結時,被植入的攻擊指令碼被使用者遊覽器執行,從而達到攻擊目的。持久型xss,會把攻擊者的資料儲存在伺服器端,攻擊行為將伴隨著攻擊資料一直存在。dom 不經過後端...