您的位置:首頁 > 菜鳥學(xué)院 > HTML5跨域消息發(fā)送安全性分析

HTML5跨域消息發(fā)送安全性分析

來源:互聯(lián)網(wǎng) | 時間:2015-03-11 11:07:02 | 閱讀:188 |  標(biāo)簽: 網(wǎng)絡(luò)安全 HTML5   | 分享到:

HTML5跨域消息發(fā)送安全性分析

HTML5是下一代的Web應(yīng)用,它具有許多新的特性,是一種新興的技術(shù)并且在移動應(yīng)用中也有著廣泛的使用。但也正是因為它的一些新特性的出現(xiàn)以及廣泛的應(yīng)用,使得其安全性非常值得關(guān)注。

在本文中,我們將針對HTML5 Web消息發(fā)送(跨域消息發(fā)送)的安全性進(jìn)行分析和研究。

跨域消息發(fā)送

在討論這一問題之前,我們先來了解下在HTML5中是如何實現(xiàn)跨域的消息發(fā)送。

在HTML5之前,由于同源策略的限制導(dǎo)致在兩個窗口之間進(jìn)行消息傳送必須是使用相同的協(xié)議、端口和主機(jī)。

HTML5有一種新的方法叫做postMessage(),通過這一方法,跨域的消息傳送將不再受到同源策略的限制。

以下是postMessage()的語法:

發(fā)送窗口:

HTML5跨域消息發(fā)送安全性分析

Otherwindows:涉及到的其他窗口 Message:被發(fā)送到接收窗口的信息 targetOrigin:接收窗口必須規(guī)定的URL。如果沒有任何特殊偏好,可以將其規(guī)定為“*”定義“*”為targetOrigin,但這樣做其實會存在一些安全隱患,在后文中我會提到。 Transfer:這個是任意的。

接收窗口:

當(dāng)otherWindow.postMessage()執(zhí)行時,消息將會被發(fā)送到接收窗口。

發(fā)送方使用以下這段代碼后,我們就可以接收到這條消息。

HTML5跨域消息發(fā)送安全性分析

通過該段代碼,我們可以訪問數(shù)據(jù)以及這一信息的源。如下所示:

Event.origin:提供信息的源(我們所接收到的信息的URL) Event.data:提供實際所發(fā)送出的信息內(nèi)容

安全性實例分析

出于演示需要,我設(shè)立了如下兩個Lab:

A: http://localhost:8383/ B: http://localhost/

正如你所看到的,上面兩個URL具有不同的端口,第一個運行在8383端口,第二個則是在80端口。正是因為其源不同,所以才導(dǎo)致端口不同。

A是發(fā)送窗口,B是接收窗口

現(xiàn)在我們加載第二個URL(http://localhost/ ;)作為第一個URL的iframe:

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)