使用filter解決xss攻擊

2021-08-02 23:54:57 字數 2075 閱讀 9747

使用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 不經過後端...