1. 程式人生 > >springboot 實現防止xss攻擊和sql注入

springboot 實現防止xss攻擊和sql注入

一、xss攻擊和sql注入(可以使用IBM安全漏洞掃描工具)

(1)XSS(Cross Site Scripting),即跨站指令碼攻擊,是一種常見於web application中的電腦保安漏洞。XSS通過在使用者端注入惡意的可執行指令碼,若伺服器端對使用者輸入不進行處理,直接將使用者輸入輸出到瀏覽器,則瀏覽器將會執行使用者注入的指令碼。

//通過表單將以下程式碼儲存到資料庫,在頁面上一個div元素內顯示以上內容

<script>for(var i=0;i<1000;i++){alert("彈死你"+i);}</script>

(2)sql注入

將惡意sql注入到請求中,從而達到欺騙伺服器執行惡意的SQL命令。

二、springboot實現xss攻擊和sql注入原理

1.通常過濾器得週期分為:

(1)初始化init()在容器啟動的時候執行

(2)doFilter()是過濾器的主要方法

(3)析構destroy():容器緊跟在垃圾收集之前呼叫 destroy()方法

2.Filter負責將請求的request進行包裝,定義了XSS請求入口。

(1)chain.doFilter(request,response)方法確保呼叫的方法(request.getParameter,getParameterValues,getHeader)都是XssHttpServletRequestWrapper重寫的方法,且獲取的引數都是已經進行過濾的內容,進而消除了敏感資訊。一般filter都是一個鏈,web.xml 裡面配置了幾個就有幾個,request -> filter1 -> filter2 ->filter3 -> .... -> request resource

3.另一個是request包裝器,負責過濾掉非法的字元。通過XssHttpServletRequestWrapper將HttpServletRequest進行了封裝。實現對請求內的引數進行過濾。

三、springboot的xss攻擊和sql注入程式碼實現