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

在React中防范XSS攻擊

安全 應用安全
在本文中,我們將查看幾個用React編寫的代碼示例,這樣您也可以保護您的站點和用戶。

跨站點腳本(XSS)攻擊是一種將惡意代碼注入網頁然后執行的攻擊。這是前端Web開發人員必須應對的最常見的網絡攻擊形式之一,因此了解攻擊的工作原理和防范方法非常重要。

在本文中,我們將查看幾個用React編寫的代碼示例,這樣您也可以保護您的站點和用戶。

[[354855]]

示例1:React中成功的XSS攻擊

對于我們所有的示例,我們將實現相同的基本功能。我們將在頁面上有一個搜索框,用戶可以在其中輸入文本。點擊“Go”按鈕將模擬運行搜索,然后一些確認文本將顯示在屏幕上,并向用戶重復他們搜索的術語。這是任何允許你搜索的網站的標準行為。

小技巧|在React中防范XSS攻擊

很簡單,對吧?會出什么問題呢?

好吧,如果我們在搜索框中輸入一些HTML怎么辦?讓我們嘗試以下代碼段:

  1. <img src="1" onerror="alert('Gotcha!')" /> 

現在會發生什么?

小技巧|在React中防范XSS攻擊

哇,onerror 事件處理程序已執行!那不是我們想要的!我們只是不知不覺地從不受信任的用戶輸入中執行了腳本。

小技巧|在React中防范XSS攻擊

然后,破碎的圖像將呈現在頁面上,那也不是我們想要的。

那么我們是怎么到這里的呢?好吧,在本例中渲染搜索結果的JSX中,我們使用了以下代碼:

  1. <p style={searchResultsStyle}>You searched for: <b><span dangerouslySetInnerHTML={{ __html: this.state.submittedSearch }} /></b></p> 

用戶輸入被解析和渲染的原因是我們使用了 dangerouslySetInnerHTML 屬性,這是React中的一個特性,它的工作原理就像原生的 innerHTML 瀏覽器API一樣,由于這個原因,一般認為使用這個屬性是不安全的。

示例2:React中的XSS攻擊失敗

現在,讓我們看一個成功防御XSS攻擊的示例。這里的修復方法非常簡單:為了安全地渲染用戶輸入,我們不應該使用 dangerouslySetInnerHTML 屬性。相反,讓我們這樣編寫輸出代碼:

  1. <p style={searchResultsStyle}>You searched for: <b>{this.state.submittedSearch}</b></p> 

我們將輸入相同的輸入,但這一次,這里是輸出:

很好!用戶輸入的內容在屏幕上只呈現為文字,威脅已被解除。

這是個好消息!React默認情況下會對渲染的內容進行轉義處理,將所有的數據都視為文本字符串處理,這相當于使用原生 textContent 瀏覽器API。

示例3:在React中清理HTML內容

所以,這里的建議似乎很簡單。只要不要在你的React代碼中使用dangerouslySetInnerHTML 你就可以了。但如果你發現自己需要使用這個功能呢?

例如,也許您正在從諸如Drupal之類的內容管理系統(CMS)中提取內容,而其中某些內容包含標記。(順便說一句,我可能一開始就不建議在文本內容和來自CMS的翻譯中包含標記,但對于本例,我們假設您的意見被否決了,并且帶有標記的內容將保留下來。)

在這種情況下,您確實想解析HTML并將其呈現在頁面上。那么,您如何安全地做到這一點?

答案是在渲染HTML之前對其進行清理。與完全轉義HTML不同,在渲染之前,您將通過一個函數運行內容以去除任何潛在的惡意代碼。

您可以使用許多不錯的HTML清理庫。和任何與網絡安全有關的東西一樣,最好不要自己寫這些東西。有些人比你聰明得多,不管他們是好人還是壞人,他們比你考慮得更多,一定要使用久經考驗的解決方案。

我最喜歡的清理程序庫之一稱為sanitize-html,它的功能恰如其名。您從一些不干凈的HTML開始,通過一個函數運行它,然后得到一些漂亮、干凈、安全的HTML作為輸出。如果您想要比它們的默認設置提供更多的控制,您甚至可以自定義允許的HTML標記和屬性。

結束

就是這樣了。如何執行XSS攻擊,如何防止它們,以及如何在必要時安全地解析HTML內容。

祝您編程愉快,安全無虞!

完整的代碼示例可在GitHub上找到:https://github.com/thawkin3/xss-demo

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2010-09-13 10:14:30

2011-04-14 12:33:43

2013-01-28 16:44:50

2024-10-12 10:57:21

2011-11-25 15:58:43

2011-08-09 15:09:45

2013-04-07 10:11:27

2010-09-16 15:39:18

2018-07-16 08:36:13

2020-02-17 16:52:06

誤植攻擊網絡攻擊網絡安全

2013-05-13 17:33:10

2013-06-17 09:48:02

2017-05-16 14:25:28

2013-07-26 14:59:13

2012-11-27 16:41:42

2011-03-04 17:35:16

2009-12-11 14:46:13

2018-06-15 07:58:36

2010-09-14 22:01:48

2022-07-31 00:12:08

Deepfakes數據圖像
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 嫩草国产| 国产精品综合久久 | 91久久精品国产 | 成人欧美一区二区三区在线播放 | 欧美日韩精品综合 | av国产在线观看 | 精品久久久久一区二区国产 | 午夜欧美一区二区三区在线播放 | 国产精品一区二区三区在线 | 日韩午夜网站 | 免费永久av | 一二区视频| 欧美一级一 | 91资源在线 | 欧美精品久久久久久 | 国产精品爱久久久久久久 | 中文在线亚洲 | 久久精品电影 | 日日操天天射 | 蜜桃在线播放 | 国产精品毛片一区二区在线看 | 黑人精品 | 国产精品1区2区3区 国产在线观看一区 | 欧美精品首页 | 久久51| 亚洲国产一区二区三区在线观看 | 欧美高清视频 | 成人免费视频观看 | 黄色片免费在线观看 | 亚洲精品福利视频 | 精品国产伦一区二区三区观看说明 | 成人免费视频网址 | 欧美日韩精品 | 久久精品二区亚洲w码 | 久久黄网 | 午夜小视频免费观看 | 国产一区不卡 | 久久精点视频 | 欧美日韩在线观看一区二区三区 | 国产传媒在线观看 | 欧美日韩高清一区 |