防止XSS攻擊的方法-使用白名單過濾html等標籤

做javaweb項目,從安全的角度思考,否則哪天你的項目就被簡單的黑掉了。最簡單的就是從網站輸入了alert("i am coming"),返回的確實一個彈出框,這就尷尬了。

事實上,現在運行的很多項目,安全的意識還沒有得到重視。不要等到被勒索病毒這樣的嚴重事件爆發出來才亡羊補牢,這就晚了。所以,一個成熟的項目安全是一定要的。

XSS攻擊是相對簡單的一個了,防止XSS攻擊是一定要的。下面說一下防止的具體方法:jsoup工具類

jsoup使用很簡單,功能卻很強大。它提供了很多簡單易懂,方便應用的方法

上代碼好說話

項目中引入:

jsoup 使用一個 Whitelist 類用來對 HTML 文檔進行過濾,該類提供幾個常用方法:

Advertisements

常用方法如下:

none():只允許包含文本信息

basic():允許的標籤包括:a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul, 以及合適的屬性

simpleText():只允許 b, em, i, strong, u 這些標籤

basicWithImages():在 basic() 的基礎上增加了圖片

relaxed():這個過濾器允許的標籤最多,包括:a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul

Advertisements

如果這五個過濾器都無法滿足你的要求呢,例如你允許用戶插入 flash 動畫,沒關係,Whitelist 提供擴展功能,例如 whitelist.addTags("embed","object","param","span","div"); 也可調用 addAttributes 為某些元素增加屬性。

用法:Jsoup.clean(content, Whitelist.relaxed());//content:要處理的內容

實例:

加入到你的項目中,測試后你會發現,它很好用,也很實用。這裡只是簡單使用,入個門。具體高級應用項目中用到了再深入研究,增加效率,幫助你更快的完成工作

Advertisements

你可能會喜歡