最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Sanitizer:給你的DOM消消毒

大家好,我卡頌。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了維西免費(fèi)建站歡迎大家使用!

業(yè)務(wù)中經(jīng)常遇到需要處理「有風(fēng)險(xiǎn)的DOM」的場(chǎng)景,比如:

  • 各種工具的文本粘貼功能
  • 需要渲染服務(wù)端返回HTML的場(chǎng)景

為了阻止?jié)撛诘腦SS攻擊,有兩個(gè)選擇:

  • escape(轉(zhuǎn)義)
  • sanitize(消毒)

本文會(huì)介紹這兩者的區(qū)別以及為DOM消毒的API —— Sanitizer。

本文內(nèi)容來(lái)自Safe DOM manipulation with the Sanitizer API[1]

轉(zhuǎn)義與消毒

假設(shè),我們想將這樣一段HTML字符串插入DOM:

 
 
 
 
  1. const str = ""; 

如果直接將其作為某個(gè)元素的innerHTML,img的onerror回調(diào)執(zhí)行JS代碼的能力會(huì)帶來(lái)XSS風(fēng)險(xiǎn)。

一種常見(jiàn)解決方案是:轉(zhuǎn)義字符串。

什么是escape

瀏覽器會(huì)將一些保留字符解析為HTML代碼,比如:

  • <被解析為標(biāo)簽的開(kāi)頭
  • >被解析為標(biāo)簽的結(jié)尾
  • ''被解析為屬性值的開(kāi)頭和結(jié)尾

為了將這些保留字符顯示為文本(不被解析為HTML代碼),可以將其替換為對(duì)應(yīng)的entity(HTML實(shí)體):

  • <的實(shí)體為<
  • >的實(shí)體為>
  • ''的實(shí)體為"

這種將HTML字符替換為entity的方式被稱(chēng)為escape(轉(zhuǎn)義)

什么是sanitize

對(duì)于上面的HTML字符串:

 
 
 
 
  1. const str = ""; 

除了轉(zhuǎn)義''來(lái)規(guī)避XSS風(fēng)險(xiǎn),還有一種更直觀的思路:直接過(guò)濾掉onerror屬性。

這種直接移除HTML字符串中有害的代碼(比如