成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過img URL實施XSS的解決方案

安全 應用安全
今天在整理一些js,9月份的時候給百姓網支持了markdown,但 UGC 的自由意味著我們要做一些保持措施,比如防XSS攻擊。

今天在整理一些js,9月份的時候給百姓網支持了markdown,但 UGC 的自由意味著我們要做一些保持措施,比如防XSS攻擊。翻到了9月初寫的一篇郵件。當時的背景是,當天上了markdown支持,晚上覺得似乎不太對,結果 23 點后開始研究 XSS 攻擊。其中有一個難點,如何防止通過外部圖片鏈接進行 XSS。我的解決方案在郵件原文做了簡單的介紹:

通過XSS的方法好多啊,特別是image的方式,而我們今天發布的viewad markdown支持是可以使用img.src進行外鏈的,因此需要考慮這樣的問題,今晚11點多回來研究了一下,主要可以歸類為以下幾種:

src="javascript:alert(1)"

src="jav ascript:alert(2)"

src="java&#x0script:alert(3)"

src="&#000 ……."

src="上面4中的變種"

src="外部執行腳本鏈接" www.hack6.com

Google 了很久,沒有現成所工具,而且對于第6種的解法都很浪費資源,只能自己通過 http://ha.ckers.org/xss.html 上的總結,分析得出了上面幾種類型,在 Markdown parser 中進行 xss 類型檢測支持。還真是多虧了有 ha.ckers 的總結,這個函數可以寫得非常簡單:

function imageXSS($img){

return preg_match('/(?:javascript|jav\s+ascript|\&#\d+|\&#x)/i', $img);

}

而解除第6種XSS方法,判斷外部資源是最麻煩的。

Google 得來的結論:總的來說是通過get_headers 和 stream_get_meta_data等取到content-Type的方式來做,需要我們的服務器進行請求,并且需要分析來源,再根據content-Type決定,這樣做會有一些問題:后端渲染的數據要等 header 取過來,即加載圖片后(可能有多個并且可能非常大),會阻礙起來導致渲染非常慢不緩存且每個圖片都請求,浪費服務器資源。即使是一個flickr上500px的圖,在我20M的網絡下加載也要49ms。可能一不小心就會導致服務器掛了(如果圖片多和訪問的人多的話,這個是不緩存圖片 url 的)。

搞了很久,最終想到preload image的方式,根據測試看來,在瀏覽器中只有加載的內容是真正的image才會觸發圖片的onload事件,那么其實我們可以利用onload來解決這樣的問題。這樣我們可以把請求分布給每一個用戶,而不需要我們任何一點資源,并且這種方式還會進行并行加載,甚至更提升了viewad的速度。大概需要做下面幾步:

默認情況下不加載img的src,而是設置data-xssimg="圖片地址",檢測圖片的onload事件,如果沒有觸發onload則不顯示,不過當src為空的時候,可能在一些瀏覽器會影響網站的渲染速度,所以在error觸發的時候引用了一個永久緩存的圖片:http://static.baixing.net/images/nopic_small.png。

而這些代碼看起來如下(已經變成一個 jQuery 組件),目前這段代碼已經放在 github 上,你可以在這里查看:imagesXSS.js:

~function ($) {

$.fn.imageXSS = function () {

this.each(function () {

var that = $(this),

url = that.data('mdimg'),

img = document.createElement('img');

$(img).on('load', function () {

that.attr('src', url);

})

$(img).on('error', function () {

that.attr('src', 'http://static.baixing.net/images/nopic_small.png');

})

img.src = url;

})

}

$('[data-mdimg]').imageXSS();

}(jQuery);

目前也只能想到這個點上。基本上測試過的都沒有問題。線上目前已經支持這個版本。周一回去再提交一個版本。
 

責任編輯:藍雨淚 來源: 黑客x檔案
相關推薦

2020-06-08 22:33:42

物聯網IOT物聯網實施

2009-12-30 14:31:57

PPPoA體系

2017-10-10 15:36:50

物聯網企業

2014-07-03 10:01:40

XSS漏洞存儲型XSS漏洞

2013-06-03 14:20:34

2019-03-13 08:43:32

邊緣計算物聯網IoT

2021-06-17 10:59:07

物聯網空間利用IoT

2021-11-29 10:38:05

物聯網IOT物聯網技術

2023-06-28 06:33:37

2015-03-12 09:33:54

虛擬化解決方案

2010-05-11 11:35:24

虛擬化微軟

2013-11-29 16:00:26

微軟ERP管理軟件

2010-08-16 14:34:42

SAS商業智能數據庫

2012-03-21 11:11:37

ibmdw

2013-11-12 17:42:06

殼牌JDA解決方案

2010-05-21 14:24:18

2013-03-01 11:11:21

華為解決方案企業認證

2016-09-27 21:14:53

JavaURL

2011-10-18 11:19:51

惠普云計算數據中心

2014-09-18 09:00:27

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品三级 | 午夜一区二区三区在线观看 | 亚洲一区二区三区 | 日韩视频在线免费观看 | 精品视频在线观看 | 久久高清精品 | 国产欧美一区二区精品久导航 | 亚洲成av人片在线观看无码 | 免费观看色 | 伊人久久大香线 | 91国产精品在线 | 午夜av毛片 | 日韩中文字幕av | 91av在线免费 | 狠狠躁躁夜夜躁波多野结依 | 亚洲狠狠 | 欧美国产精品一区二区三区 | 超碰8| 国产精品久久久久久久久久免费看 | 伊人久久精品一区二区三区 | 天堂中文在线观看 | 日韩福利一区 | 欧美一区二区三区国产精品 | av在线一区二区三区 | 一级国产精品一级国产精品片 | 亚洲成人av一区二区 | 9191成人精品久久 | 欧美理伦片在线播放 | 国产激情一区二区三区 | 日韩欧美国产一区二区 | 日本不卡一区 | 亚洲精品日韩欧美 | a级毛片免费高清视频 | 日韩视频一区二区在线 | 亚洲一区二区免费视频 | 夜夜草视频 | 日韩伦理电影免费在线观看 | 日韩亚洲欧美一区 | 亚洲国产日韩欧美 | 97超级碰碰 | 精品国产乱码久久久久久牛牛 |