這篇文章基於上篇談論xss ,想說下自己工作過程中遇到的xss的問題。
說說jsonp 中也有說過,jsonp其實是很容易出現安全問題的。由於jsonp的callback是由引數指定的,而必須在response中返回,所以這裡的jsonp很容易出現的就是xss漏洞了。服務端要切記著對這個callback進行處理,比如可以使用白名單機制,或者使用過濾黑名單。我個人一般使用的是強制callback為數字、英文單字和點。
關於jsonp很容易出現的還有個utf-7 xss的漏洞,簡單來說utf-7xss基本條件就是xss的漏洞**會在頭部返回,瀏覽器會自動將網頁的字元編碼解讀為utf-7。從而避過過濾機制。當然這個對於白名單過濾是沒有用的。
比如頁面中有這麼個指令碼:
1
1
2
3
4
5
6
7
8
hi
welcome to our system
這裡是會將document.url打在頁面的,如果name的引數傳遞那麼就是乙個xss漏洞了。
這種js引發的dom漏洞其實現在很多瀏覽器已經能自動修復了。
介面返回的資料往往是json或者xml,一般認為返回的資料不會顯示在html上面,所以很有可能不會使用諸如htmlspecialchars等特殊字元轉義處理,但是往往所有介面都可以將返回的資料輸出在瀏覽器上的。所以對於json和xml的輸出也需要注意下。
比如 如何根據iframe內嵌頁面調整iframe高寬續篇 中說的,使用iframe來自適應高度,也是可能會出現xss的,而這個xss解決就簡單多了。直接使用白名單,將引數直接過濾了
不要以為管理後台可以草率處理,管理後台正是永續性xss的戰場之一。管理後台返回的html引數請使用htmlspecialchars返回,
談論指標(一)
在電腦科學中,指標 pointer 是程式語言中的乙個物件,利用位址,它的值直接指向 points to 存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為 指標 意思是通過它能找到以它為位址的 記憶體單元。在 高階語言 中,指標有...
XSS 延長 XSS 生命期
xss 的本質仍是一段指令碼。和其他文件元素一樣,頁面關了一切都銷毀。除非能將指令碼蔓延到頁面以外的地方,那樣才能獲得更長的生命力。慶幸的是,從 dom 誕生的那一天起,就已為我們準備了這個特殊的功能,讓指令碼擁有突破當前頁面的能力。下面開始我們的續命黑魔法。乙個不合理的標準,往往會埋下各種隱患。但...
《當我們談論愛情時,我們談論機器》感悟一二
科技拉近了彼此的距離,可以也會帶來疏遠,漫步街頭,你就可以發現,大多數人在聚餐時,吃飯時,睡覺時都在看著手機,他們幾乎忘記了身邊人的存在,這時候,你還會覺得科技拉近了彼此的距離嗎?再說,每個人都是孤獨的,生來便是如此,有誰比你更理解你自己,更明白你需要什麼呢?只有自己罷了。也許是現在人類面臨的困境更...