国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記錄--詳解 XSS(跨站腳本攻擊)

這篇具有很好參考價(jià)值的文章主要介紹了記錄--詳解 XSS(跨站腳本攻擊)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這里給大家分享我在網(wǎng)上總結(jié)出來的一些知識,希望對大家有所幫助

記錄--詳解 XSS(跨站腳本攻擊)

前言:我們知道同源策略可以隔離各個(gè)站點(diǎn)之間的 DOM 交互、頁面數(shù)據(jù)和網(wǎng)絡(luò)通信,雖然嚴(yán)格的同源策略會(huì)帶來更多的安全,但是也束縛了 Web。這就需要在安全和自由之間找到一個(gè)平衡點(diǎn),所以我們默認(rèn)頁面中可以引用任意第三方資源,然后又引入 CSP 策略來加以限制;默認(rèn) XMLHttpRequest 和 Fetch 不能跨站請求資源,然后又通過 CORS 策略來支持其跨域。

不過支持頁面中的第三方資源引用和 CORS 也帶來了很多安全問題,其中最典型的就是 XSS 攻擊。

什么是 XSS 攻擊

XSS 全稱是 Cross Site Scripting,為了與“CSS”區(qū)分開來,故簡稱 XSS,翻譯過來就是“跨站腳本”。XSS 攻擊是指黑客往 HTML 文件中或者 DOM 中注入惡意腳本,從而在用戶瀏覽頁面時(shí)利用注入的惡意腳本對用戶實(shí)施攻擊的一種手段。

最開始的時(shí)候,這種攻擊是通過跨域來實(shí)現(xiàn)的,所以叫“跨域腳本”。但是發(fā)展到現(xiàn)在,往 HTML 文件中注入惡意代碼的方式越來越多了,所以是否跨域注入腳本已經(jīng)不是唯一的注入手段了,但是 XSS 這個(gè)名字卻一直保留至今。

當(dāng)頁面被注入了惡意 JavaScript 腳本時(shí),瀏覽器無法區(qū)分這些腳本是被惡意注入的還是正常的頁面內(nèi)容,所以惡意注入 JavaScript 腳本也擁有所有的腳本權(quán)限。下面我們就來看看,如果頁面被注入了惡意 JavaScript 腳本,惡意腳本都能做哪些事情。

  • 可以竊取 Cookie 信息。惡意 JavaScript 可以通過“document.cookie”獲取 Cookie 信息,然后通過 XMLHttpRequest 或者 Fetch 加上 CORS 功能將數(shù)據(jù)發(fā)送給惡意服務(wù)器;惡意服務(wù)器拿到用戶的 Cookie 信息之后,就可以在其他電腦上模擬用戶的登錄,然后進(jìn)行轉(zhuǎn)賬等操作。
  • 可以監(jiān)聽用戶行為。惡意 JavaScript 可以使用“addEventListener”接口來監(jiān)聽鍵盤事件,比如可以獲取用戶輸入的信用卡等信息,將其發(fā)送到惡意服務(wù)器。黑客掌握了這些信息之后,又可以做很多違法的事情。
  • 可以通過修改 DOM偽造假的登錄窗口,用來欺騙用戶輸入用戶名和密碼等信息。
  • 還可以在頁面內(nèi)生成浮窗廣告,這些廣告會(huì)嚴(yán)重地影響用戶體驗(yàn)。

惡意腳本是怎么注入的

現(xiàn)在我們知道了頁面中被注入惡意的 JavaScript 腳本是一件非常危險(xiǎn)的事情,所以網(wǎng)站開發(fā)者會(huì)盡可能地避免頁面中被注入惡意腳本。要想避免站點(diǎn)被注入惡意腳本,就要知道有哪些常見的注入方式。通常情況下,主要有存儲(chǔ)型 XSS 攻擊、反射型 XSS 攻擊基于 DOM 的 XSS 攻擊三種方式來注入惡意腳本。

1. 存儲(chǔ)型 XSS 攻擊

我們先來看看存儲(chǔ)型 XSS 攻擊是怎么向 HTML 文件中注入惡意腳本的,你可以參考下圖:

記錄--詳解 XSS(跨站腳本攻擊)

通過上圖,我們可以看出存儲(chǔ)型 XSS 攻擊大致需要經(jīng)過如下步驟:

  • 首先黑客利用站點(diǎn)漏洞將一段惡意 JavaScript 代碼提交到網(wǎng)站的數(shù)據(jù)庫中;
  • 然后用戶向網(wǎng)站請求包含了惡意 JavaScript 腳本的頁面;
  • 當(dāng)用戶瀏覽該頁面的時(shí)候,惡意腳本就會(huì)將用戶的 Cookie 信息等數(shù)據(jù)上傳到服務(wù)器。

下面我們來看個(gè)例子,2015 年喜馬拉雅就被曝出了存儲(chǔ)型 XSS 漏洞。起因是在用戶設(shè)置專輯名稱時(shí),服務(wù)器對關(guān)鍵字過濾不嚴(yán)格,比如可以將專輯名稱設(shè)置為一段 JavaScript,如下圖所示:

記錄--詳解 XSS(跨站腳本攻擊)

當(dāng)黑客將專輯名稱設(shè)置為一段 JavaScript 代碼并提交時(shí),喜馬拉雅的服務(wù)器會(huì)保存該段 JavaScript 代碼到數(shù)據(jù)庫中。然后當(dāng)用戶打開黑客設(shè)置的專輯時(shí),這段代碼就會(huì)在用戶的頁面里執(zhí)行,這樣就可以獲取用戶的 Cookie 等數(shù)據(jù)信息。

當(dāng)用戶打開黑客設(shè)置的專輯頁面時(shí),服務(wù)器也會(huì)將這段惡意 JavaScript 代碼返回給用戶,因此這段惡意腳本就在用戶的頁面中執(zhí)行了。惡意腳本可以通過 XMLHttpRequest 或者 Fetch 將用戶的 Cookie 數(shù)據(jù)上傳到黑客的服務(wù)器。

2. 反射型 XSS 攻擊

在一個(gè)反射型 XSS 攻擊過程中,惡意 JavaScript 腳本屬于用戶發(fā)送給網(wǎng)站請求中的一部分,隨后網(wǎng)站又把惡意 JavaScript 腳本返回給用戶。當(dāng)惡意 JavaScript 腳本在用戶頁面中被執(zhí)行時(shí),黑客就可以利用該腳本做一些惡意操作。

這樣講有點(diǎn)抽象,下面我們結(jié)合一個(gè)簡單的 Node 服務(wù)程序來看看什么是反射型 XSS。首先我們使用 Node 來搭建一個(gè)簡單的頁面環(huán)境,搭建好的服務(wù)代碼如下所示:

var express = require('express');
var router = express.Router();
 
 
/* GET home page. */
router.get('/', function(req, res, next) {
 ?res.render('index', { title: 'Express',xss:req.query.xss });
});
 
 
module.exports = router;
<!DOCTYPE html>
<html>
<head>
 ?<title><%= title %></title>
 ?<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
 ?<h1><%= title %></h1>
 ?<p>Welcome to <%= title %></p>
 ?<div>
 ? ? ?<%- xss %>
 ?</div>
</body>
</html>

上面這兩段代碼,第一段是路由,第二段是視圖,作用是將 URL 中 xss 參數(shù)的內(nèi)容顯示在頁面。我們可以在本地演示下,比如打開http://localhost:3000/?xss=123這個(gè)鏈接,這樣在頁面中展示就是“123”了(如下圖),是正常的,沒有問題的。

但當(dāng)打開http://localhost:3000/?xss=<script>alert('你被xss攻擊了')</script>這段 URL 時(shí),我們會(huì)發(fā)現(xiàn)用戶將一段含有惡意代碼的請求提交給 Web 服務(wù)器,Web 服務(wù)器接收到請求時(shí),又將惡意代碼反射給了瀏覽器端,這就是反射型 XSS 攻擊。在現(xiàn)實(shí)生活中,黑客經(jīng)常會(huì)通過 QQ 群或者郵件等渠道誘導(dǎo)用戶去點(diǎn)擊這些惡意鏈接,所以對于一些鏈接我們一定要慎之又慎。

另外需要注意的是,Web 服務(wù)器不會(huì)存儲(chǔ)反射型 XSS 攻擊的惡意腳本,這是和存儲(chǔ)型 XSS 攻擊不同的地方。

3. 基于 DOM 的 XSS 攻擊

基于 DOM 的 XSS 攻擊是不牽涉到頁面 Web 服務(wù)器的。具體來講,黑客通過各種手段將惡意腳本注入用戶的頁面中,比如通過網(wǎng)絡(luò)劫持在頁面?zhèn)鬏斶^程中修改 HTML 頁面的內(nèi)容,這種劫持類型很多,有通過 WiFi 路由器劫持的,有通過本地惡意軟件來劫持的,它們的共同點(diǎn)是在 Web 資源傳輸過程或者在用戶使用頁面的過程中修改 Web 頁面的數(shù)據(jù)。

如何阻止 XSS 攻擊

我們知道存儲(chǔ)型 XSS 攻擊和反射型 XSS 攻擊都是需要經(jīng)過 Web 服務(wù)器來處理的,因此可以認(rèn)為這兩種類型的漏洞是服務(wù)端的安全漏洞。而基于 DOM 的 XSS 攻擊全部都是在瀏覽器端完成的,因此基于 DOM 的 XSS 攻擊是屬于前端的安全漏洞。

但無論是何種類型的 XSS 攻擊,它們都有一個(gè)共同點(diǎn),那就是首先往瀏覽器中注入惡意腳本,然后再通過惡意腳本將用戶信息發(fā)送至黑客部署的惡意服務(wù)器上。

所以要阻止 XSS 攻擊,我們可以通過阻止惡意 JavaScript 腳本的注入和惡意消息的發(fā)送來實(shí)現(xiàn)。

接下來我們就來看看一些常用的阻止 XSS 攻擊的策略。

1. 服務(wù)器對輸入腳本進(jìn)行過濾或轉(zhuǎn)碼

不管是反射型還是存儲(chǔ)型 XSS 攻擊,我們都可以在服務(wù)器端將一些關(guān)鍵的字符進(jìn)行轉(zhuǎn)碼,比如最典型的:

code:<script>alert('你被 xss 攻擊了')</script>
// 過濾后
code:

這樣,當(dāng)用戶再次請求該頁面時(shí),由于<script>標(biāo)簽的內(nèi)容都被過濾了,所以這段腳本在客戶端是不可能被執(zhí)行的。

除了過濾之外,服務(wù)器還可以對這些內(nèi)容進(jìn)行轉(zhuǎn)碼,還是上面那段代碼,經(jīng)過轉(zhuǎn)碼之后,效果如下所示:

code:<script>alert(' 你被 xss 攻擊了 ')</script>

經(jīng)過轉(zhuǎn)碼之后的內(nèi)容,如<script>標(biāo)簽被轉(zhuǎn)換為<script>,因此即使這段腳本返回給頁面,頁面也不會(huì)執(zhí)行這段腳本。

2. 充分利用 CSP

雖然在服務(wù)器端執(zhí)行過濾或者轉(zhuǎn)碼可以阻止 XSS 攻擊的發(fā)生,但完全依靠服務(wù)器端依然是不夠的,我們還需要把 CSP 等策略充分地利用起來,以降低 XSS 攻擊帶來的風(fēng)險(xiǎn)和后果。

實(shí)施嚴(yán)格的 CSP 可以有效地防范 XSS 攻擊,具體來講 CSP 有如下幾個(gè)功能:

  • 限制加載其他域下的資源文件,這樣即使黑客插入了一個(gè) JavaScript 文件,這個(gè) JavaScript 文件也是無法被加載的;
  • 禁止向第三方域提交數(shù)據(jù),這樣用戶數(shù)據(jù)也不會(huì)外泄;
  • 禁止執(zhí)行內(nèi)聯(lián)腳本和未授權(quán)的腳本;
  • 還提供了上報(bào)機(jī)制,這樣可以幫助我們盡快發(fā)現(xiàn)有哪些 XSS 攻擊,以便盡快修復(fù)問題。

因此,利用好 CSP 能夠有效降低 XSS 攻擊的概率。

3. 使用 HttpOnly 屬性

由于很多 XSS 攻擊都是來盜用 Cookie 的,因此還可以通過使用 HttpOnly 屬性來保護(hù)我們 Cookie 的安全。

通常服務(wù)器可以將某些 Cookie 設(shè)置為 HttpOnly 標(biāo)志,HttpOnly 是服務(wù)器通過 HTTP 響應(yīng)頭來設(shè)置的。

由于 JavaScript 無法讀取設(shè)置了 HttpOnly 的 Cookie 數(shù)據(jù),所以即使頁面被注入了惡意 JavaScript 腳本,也是無法獲取到設(shè)置了 HttpOnly 的數(shù)據(jù)。因此一些比較重要的數(shù)據(jù)我們建議設(shè)置 HttpOnly 標(biāo)志。

總結(jié)

好了,就介紹到這里,下面總結(jié)下本文的主要內(nèi)容。

XSS 攻擊就是黑客往頁面中注入惡意腳本,然后將頁面的一些重要數(shù)據(jù)上傳到惡意服務(wù)器。常見的三種 XSS 攻擊模式是存儲(chǔ)型 XSS 攻擊、反射型 XSS 攻擊和基于 DOM 的 XSS 攻擊。

這三種攻擊方式的共同點(diǎn)是都需要往用戶的頁面中注入惡意腳本,然后再通過惡意腳本將用戶數(shù)據(jù)上傳到黑客的惡意服務(wù)器上。而三者的不同點(diǎn)在于注入的方式不一樣,有通過服務(wù)器漏洞來進(jìn)行注入的,還有在客戶端直接注入的。

針對這些 XSS 攻擊,主要有三種防范策略,第一種是通過服務(wù)器對輸入的內(nèi)容進(jìn)行過濾或者轉(zhuǎn)碼,第二種是充分利用好 CSP,第三種是使用 HttpOnly 來保護(hù)重要的 Cookie 信息。

當(dāng)然除了以上策略之外,我們還可以通過添加驗(yàn)證碼防止腳本冒充用戶提交危險(xiǎn)操作。而對于一些不受信任的輸入,還可以限制其輸入長度,這樣可以增大 XSS 攻擊的難度。

本文轉(zhuǎn)載于:

https://juejin.cn/post/7146867780308959262

如果對您有所幫助,歡迎您點(diǎn)個(gè)關(guān)注,我會(huì)定時(shí)更新技術(shù)文檔,大家一起討論學(xué)習(xí),一起進(jìn)步。

?記錄--詳解 XSS(跨站腳本攻擊)文章來源地址http://www.zghlxwxcb.cn/news/detail-480198.html

到了這里,關(guān)于記錄--詳解 XSS(跨站腳本攻擊)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • XSS注入(跨站腳本攻擊)

    XSS注入(跨站腳本攻擊)

    今天學(xué)習(xí)一下xss注入 XSS注入漏洞又稱為\\\"跨站腳本攻擊(Cross Site Scripting)\\\",為了不和層疊樣式表(Cascading Style Sheets,CSS)混淆,所以將跨站腳本攻擊縮寫為XSS。xss本質(zhì)上是黑客通過對網(wǎng)頁的HTML注入,篡改了原本服務(wù)器發(fā)給客戶端的數(shù)據(jù)包,在其中插入了惡意的Script代碼插入到網(wǎng)頁

    2024年02月09日
    瀏覽(28)
  • XSS跨站腳本攻擊漏洞

    XSS(跨站腳本攻擊)是一種常見的網(wǎng)絡(luò)安全漏洞,它允許攻擊者在網(wǎng)站中植入惡意的腳本代碼,當(dāng)其他用戶訪問該網(wǎng)站時(shí),這些腳本代碼會(huì)在用戶的瀏覽器中執(zhí)行。這可能會(huì)導(dǎo)致嚴(yán)重的安全后果,比如竊取用戶的敏感信息,欺騙用戶,或者在用戶的瀏覽器中執(zhí)行惡意操作。

    2024年02月09日
    瀏覽(28)
  • XSS跨站腳本攻擊及防護(hù)

    XSS跨站腳本攻擊及防護(hù)

    目錄 一、初識XSS跨站腳本 1.1 XSS攻擊概述 1.2 XSS漏洞攻擊本質(zhì) 1.3 XSS攻擊的危害 1.4 XSS玫擊原理 1.5 XSS攻擊過程 1.6 XSS攻擊特點(diǎn)(3) 1.6.1 間接攻擊 1.6.2 可更正性 1.6.3 傳播性強(qiáng) 二、XSS攻擊與防護(hù) 2.1 XSS攻擊分類 2.1.1 存儲(chǔ)型XSS 2.1.2 反射型XSS 2.1.3 DOM型XSS 2.2?XSS攻擊過程 2.2.1 存儲(chǔ)型

    2024年02月11日
    瀏覽(22)
  • 【網(wǎng)絡(luò)安全】跨站腳本(xss)攻擊

    【網(wǎng)絡(luò)安全】跨站腳本(xss)攻擊

    跨站點(diǎn)腳本(也稱為 XSS)是一種 Web 安全漏洞,允許攻擊者破壞用戶與易受攻擊的應(yīng)用程序的交互。它允許攻擊者繞過同源策略,該策略旨在將不同的網(wǎng)站彼此隔離??缯军c(diǎn)腳本漏洞通常允許攻擊者偽裝成受害者用戶,執(zhí)行用戶能夠執(zhí)行的任何操作,并訪問用戶的任何數(shù)據(jù)。

    2024年02月11日
    瀏覽(24)
  • 【網(wǎng)絡(luò)安全】跨站腳本攻擊(XSS)

    【網(wǎng)絡(luò)安全】跨站腳本攻擊(XSS)

    專欄文章索引:網(wǎng)絡(luò)安全 有問題可私聊:QQ:3375119339 目錄 一、XSS簡介 二、XSS漏洞危害 三、XSS漏洞類型 1.反射型XSS 2.存儲(chǔ)型XSS 3.DOM型XSS 四、XSS漏洞防御 XSS(Cross-Site Scripting) XSS 被稱為跨站腳本攻擊,由于和CSS重名,所以改為XSS。 XSS 主要使用 javascript , javascript 可以非常靈

    2024年04月28日
    瀏覽(21)
  • 網(wǎng)絡(luò)安全——XSS跨站腳本攻擊

    網(wǎng)絡(luò)安全——XSS跨站腳本攻擊

    一、XSS概述 1、XSS被稱為跨站腳本攻擊,由于和CSS重名,所以改為XSS; 2、XSS主要基于JavaScript語言完成惡意的攻擊行為,因?yàn)镴avaScript可以非常靈活的操作html、CSS和瀏覽器 3、原理: XSS就是通過利用網(wǎng)頁開發(fā)時(shí)留下的漏洞(由于Web應(yīng)用程序?qū)τ脩舻妮斎脒^濾不足),巧妙的將惡

    2024年02月16日
    瀏覽(24)
  • 如何防止xss跨站腳本攻擊(代碼說明)

    XSS(跨站腳本)攻擊是一種常見的網(wǎng)絡(luò)安全漏洞,攻擊者通過在網(wǎng)頁中注入惡意腳本代碼,從而實(shí)現(xiàn)竊取用戶信息、盜取會(huì)話令牌等攻擊目的。為了防止XSS攻擊,我們可以采取以下措施: 輸入過濾和驗(yàn)證:在接收用戶輸入時(shí),進(jìn)行輸入過濾和驗(yàn)證,去除或轉(zhuǎn)義用戶輸入中的特

    2024年02月05日
    瀏覽(23)
  • 【web安全】XSS攻擊(跨站腳本攻擊)如何防范與實(shí)現(xiàn)

    目錄 XSS介紹 防范要點(diǎn) 實(shí)現(xiàn)方法 XSS攻擊(跨站腳本攻擊)是一種常見的Web安全漏洞,攻擊者在Web頁面中插入惡意腳本代碼,并在受害人訪問該頁面時(shí)執(zhí)行腳本代碼,從而獲取用戶敏感信息、操作受害人賬號或篡改頁面內(nèi)容等不當(dāng)行為。XSS攻擊可以通過輸入表單、搜索框、評論

    2024年02月12日
    瀏覽(21)
  • 瀏覽器基礎(chǔ)原理-安全: 跨站腳本攻擊(XSS)

    XSS 跨站腳本 (Cross Site Scripting): 概念: XSS 攻擊是指黑客往 HTML 文件中或者 DOM 中注入惡意腳本,從而在用戶瀏覽頁面時(shí)利用注入的惡意腳本對用戶實(shí)施攻擊的一種手段。 實(shí)現(xiàn)方式: 起初,這種攻擊通過跨域來實(shí)現(xiàn)的,所以叫“跨域腳本”。但是發(fā)展到現(xiàn)在,往 HTML 文件中注入惡

    2024年02月11日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包