springmvcxss過濾
A. SpringMVC如何有效的防止XSS注入
在數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原
在顯示的時候對非法字元進行轉義
如果項目還處在起步階段,建議使用第二種,直接使用jstl的<c:out>標簽即可解決非法字元的問題。當然,對於Javascript還需要自己處理一下,寫一個方法,在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。
附:Javascript方法:
String.prototype.escapeHTML = function () {
return this.replace(/&/g, 『&』).replace(/>/g, 『>』).replace(/</g, 『<』).replace(/」/g, 『"』);}
如果項目已經開發完成了,又不想大批量改動頁面的話,可以採用第一種方法,此時需要藉助Spring MVC的@InitBinder以及org.apache.commons.lang.PropertyEditorSupport、org.apache.commons.lang.StringEscapeUtils
public class StringEscapeEditor extends PropertyEditorSupport {
private boolean escapeHTML;
private boolean escapeJavaScript;
private boolean escapeSQL;
public StringEscapeEditor() { super(); }
public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript, boolean escapeSQL) {super();this.escapeHTML = escapeHTML;
this.escapeJavaScript = escapeJavaScript;
this.escapeSQL = escapeSQL;}@Overridepublic void setAsText(String text) {
if (text == null) {
setValue(null);} else {String value = text;
if (escapeHTML) { value = StringEscapeUtils.escapeHtml(value); }
if (escapeJavaScript) { value = StringEscapeUtils.escapeJavaScript(value); }
if (escapeSQL) { value = StringEscapeUtils.escapeSql(value); } setValue(value); }}@Overridepublic String getAsText() { Object value = getValue(); return value != null ? value.toString() : 「」; }}
在上面我們做了一個EscapeEditor,下面還要將這個Editor和Spring的Controller綁定,使伺服器端接收到數據之後能夠自動轉移特殊字元。
下面我們在@Controller中注冊@InitBinder
@InitBinder
public void initBinder(WebDataBinder binder) {
這個方法可以直接放到abstract Controller類中,這樣子每個Controller實例都能夠擁有該方法。
B. SpringMVC的攔截器和過濾器的區別與聯系
攔截器 :是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現
C. spring mvc 註解怎麼連接所有進入controler的請求並過濾其中的xss
由於只需要對content-type=application/json;charset=UTF-8的json請求進行處理,所以需要重寫部分方法。
注意:如果使用的是,需要重寫部分方法。
D. springmvc中為什麼要過濾靜態資源
不過濾的話,springmvc的controller層跳轉頁面的時候由於URL地址的變化,頁面上事先寫好的靜態資源路徑就會錯誤,導致訪問靜態資源404
E. Spring MVC中,遇到XSS、SQL注入攻擊怎麼處理
1、在數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原;
2、在顯示的時候對非法字元進行轉義;
如果項目還處在起步階段,建議使用第二種,直接使用jstl的標簽即可解決非法字元的問題。在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。
來源:麥子學院
F. 大哥,在springMVC下防禦xss漏洞。和sql注入的問題知道如何解決嗎
不知道你是想防哪種xss,存儲型?反射型?Dom型?
sql注入預防在編程時機可以做到,不要使用字元串拼接的sql語句,就可以做到
G. SpringMVC中,如果想對所有表單提交的數據進行過濾/轉義,怎麼操作比較簡單
最好的辦法就是整個過濾器,然後獲取表單信息存入資料庫
H. spring MVC下如何能有效的防止XSS漏洞以及sql注入
在數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原
在顯示的時候對非法字元進行轉義
如果項目還處在起步階段,建議使用第二種,直接使用jstl的標簽即可解決非法字元的問題。當然,對於Javascript還需要自己處理一下,寫一個方法,在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。
附:Javascript方法:
String.prototype.escapeHTML = function () {
return this.replace(/&/g, 『&』).replace(/>/g, 『>』).replace(/
I. Spring MVC 如何防止XSS、SQL注入攻擊
在數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原 在顯示的時候對非法字元進行轉義 如果項目還處在起步階段,建議使用第二種,直接使用jstl的標簽即可解決非法字元的問題。當然,對於Javascript還需要自己處理一下,寫一個方法,在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。 附:Javascript方法: String.prototype.escapeHTML = function () { return this.replace(/&/g, 『&』).replace(/>/g, 『>』).replace(/