六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

HTML5跨域消息發送安全區分

[摘要]HTML5是下一代的Web應用,它具有許多新的特性,是一種新興的技術并且在移動應用中也有著廣泛的使用。但也正是因為它的一些新特性的出現以及廣泛的應用,使得其安全性非常值得關注。在本文中,我們將針對HTML5 Web消息發送(跨域消息發送)的安全性進行分析和研究。跨域消息發送在討論這一問題之前,我們...

HTML5跨域消息發送安全性分析1

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

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

跨域消息發送

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

在HTML5之前,由于同源策略的限制導致在兩個窗口之間進行消息傳送必須是使用相同的協議、端口和主機。

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

以下是postMessage()的語法:

發送窗口:

HTML5跨域消息發送安全性分析2

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

接收窗口:

當otherWindow.postMessage()執行時,消息將會被發送到接收窗口。

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

HTML5跨域消息發送安全性分析3

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

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

安全性實例分析

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

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

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

A是發送窗口,B是接收窗口

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

HTML5跨域消息發送安全性分析4

通過使用postMessage()的方法,我可以輕松的將消息從第一個URL發送到第二個URL.

我們可以通過點擊”send message“的按鈕來進行驗證。

HTML5跨域消息發送安全性分析5

盡管加載在第一個URL中的iframe與其并不同源,但通過postMessage() 即可進行信息傳遞。

現在我們來看一些postMessage()使用過程中可導致應用出現漏洞的例子:

case1.

發送方代碼:

HTML5跨域消息發送安全性分析6

當發送者把targetOrigin規定為通配符”*“時,將會導致未知的信息被陌生的接收方(窗口)接收到。原因是從接收窗口傳來的消息任何人都可以再加載一個iframe來進行監聽。因此在進行敏感數據的傳輸時,使用通配符是一個十分錯誤的決定。

針對此問題最好的解決方法就是在發送時添加具體的目標字段,如下所示:

HTML5跨域消息發送安全性分析7

Case2.

接收窗口代碼:

HTML5跨域消息發送安全性分析8

在上面這段代碼中可以看到,我們是直接接收發送方的消息對其進行處理,并不檢驗是否來自發送方。

但檢查消息的來源無疑是十分重要的,這樣可以防止消息來自未經授權的發送者。

因此,我們只需要在代碼中加入對發送方的驗證,這一問題就可解決了。代碼如下:

HTML5跨域消息發送安全性分析9

通過檢驗event.origin,來進行驗證。

Case3.

在這一過程中,發送方和接收方都應該驗證正在傳送的.消息。如果數據插入到HTML DOM中時并沒有進行驗證,那么應用很有可能遭受到基于DOM的跨站腳本攻擊。

由下面這段代碼可以看出,當應用程序接收到攻擊者發來的惡意信息,并已經插入到HTML DOM使用innerHTML屬性時,其顯得異常脆弱。

發送方:

HTML5跨域消息發送安全性分析10

接收方:

HTML5跨域消息發送安全性分析11

執行上面這段代碼,可導致在接收窗口出現XSS。

HTML5跨域消息發送安全性分析12

解決這一問題最簡單的方法就是在給元素分配數據值時使用 textContent 而不是innerHTML.

如下所示:

發送方:

HTML5跨域消息發送安全性分析13

接收方:

HTML5跨域消息發送安全性分析14

執行上面這段代碼時我們可以看到,文本中顯示frame是作為數據而不是代碼。

HTML5跨域消息發送安全性分析15

從上圖我們可以看到,現在它并不執行代碼,而是顯示為正常的文本。

[參考來源infosec,譯/Change,轉載請注明來自Freebuf黑客與極客]


上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。




主站蜘蛛池模板: 亚洲第一男人网站 | 最近更新免费韩国视频 | 性感美女视频黄.免费网站 性感保姆正片 | 中文字幕不卡高清免费 | 亚洲一区在线免费 | 天天干天天干天天干天天干天天干 | 日产精品久久久一区二区 | 亚洲蜜臀 | 日韩亚洲欧美一区 | 亚洲春黄在线观看 | 欧美综合国产精品日韩一 | 亚韩在线 | 日韩国产精品99久久久久久 | 欧美性操 | 四虎精品永久免费 | 一级毛片成人免费看免费不卡 | 日本视频一区二区 | 亚洲男人天堂 | 天天干成人网 | 午夜一级福利 | 亚洲精品福利视频 | 在线观看国产日韩 | 日韩精品欧美一区二区三区 | 青青青青青视频免费播放 | 四虎影视站长工具 | 日韩 欧美 综合 在线 制服 | 日日摸夜夜夜夜夜添 | 日本大片a | 色综合五月婷婷 | 四虎在线永久精品高清 | 欧美在线网 | 天天看天天碰 | 亚洲动作片 | 五月婷婷影院 | 日韩一级高清 | 视频一区中文字幕 | 日韩丝袜亚洲国产欧美一区 | 色狠狠婷婷97 | 日日干天天爽 | 欧洲毛片 | 宇都宫紫苑(rion)在线播放 |