[轉(zhuǎn)]瀏覽器常見攻擊方式(XSS和CSRF)

常見的瀏覽器攻擊分為兩種,一種為XSS(跨站腳本攻擊)意狠,另一種則為CSRF(跨站請(qǐng)求偽造)拖吼。

image.png

XSS(跨站腳本攻擊)

定義

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

存在原因

瀏覽器為了在安全和自由之間找到一個(gè)平衡點(diǎn)院水。支持了頁面中的引用第三方資源和 跨域資源共享(CORS),這樣做帶來了很多安全問題简十,其中最典型的就是 XSS 攻擊檬某。

攻擊方式

  • 存儲(chǔ)型 XSS 攻擊
  1. 首先黑客利用站點(diǎn)漏洞將一段惡意 JavaScript 代碼提交到網(wǎng)站的數(shù)據(jù)庫中;
  2. 然后用戶向網(wǎng)站請(qǐng)求包含了惡意 JavaScript 腳本的頁面螟蝙;
  3. 當(dāng)用戶瀏覽該頁面的時(shí)候恢恼,惡意腳本就會(huì)執(zhí)行
  • 反射型 XSS 攻擊
  1. 惡意 JavaScript 腳本屬于用戶發(fā)送給網(wǎng)站請(qǐng)求中的一部分。
  2. 隨后網(wǎng)站又把惡意 JavaScript 腳本返回給用戶胰默。
  3. 惡意 JavaScript 腳本就可以在用戶頁面中被執(zhí)行
  • 基于 DOM 的 XSS 攻擊

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

危害

  • 竊取 Cookie 信息

竊取到Cookie后,就可以在其他電腦上模擬用戶的登錄取具。

  • 監(jiān)聽用戶行為

可以使用“addEventListener”接口來監(jiān)聽鍵盤事件

  • 修改 DOM

可以通過修改 DOM 偽造假的登錄窗口爽柒,用來欺騙用戶輸入用戶名和密碼等信息

防御

  • 服務(wù)器對(duì)輸入腳本進(jìn)行過濾或轉(zhuǎn)碼
  • 充分利用 CSP

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

  1. 限制加載其他域下的資源文件
  2. 禁止向第三方域提交數(shù)據(jù)者填,這樣用戶數(shù)據(jù)也不會(huì)外泄浩村;
  3. 禁止執(zhí)行內(nèi)聯(lián)腳本和未授權(quán)的腳本;
  4. 還提供了上報(bào)機(jī)制占哟,這樣可以幫助我們盡快發(fā)現(xiàn)有哪些 XSS 攻擊心墅,以便盡快修復(fù)問題。
  • 防止Cookie被盜用,使用 HttpOnly 屬性

使用 HttpOnly 標(biāo)記的 Cookie 只能使用在 HTTP 請(qǐng)求過程中榨乎,所以無法通過 JavaScript 來讀取這段 Cookie怎燥。

CSRF

定義

CSRF 英文全稱是 Cross-site request forgery,是指黑客引誘用戶打開黑客的網(wǎng)站蜜暑,在黑客的網(wǎng)站中铐姚,利用用戶的登錄狀態(tài)發(fā)起的跨站請(qǐng)求。簡(jiǎn)單來講,CSRF 攻擊就是利用了用戶的登錄狀態(tài)隐绵,并通過第三方的站點(diǎn)來做一些壞事之众。而且CSRF 攻擊并不需要將惡意代碼注入用戶的頁面,僅僅是利用服務(wù)器的漏洞和用戶的登錄狀態(tài)來實(shí)施攻擊

存在原因

利用了web中用戶身份驗(yàn)證的一個(gè)漏洞:簡(jiǎn)單的身份驗(yàn)證只能保證請(qǐng)求發(fā)自某個(gè)用戶的瀏覽器依许,卻不能保證請(qǐng)求本身是用戶自愿發(fā)出的棺禾。

攻擊方式

  • 自動(dòng)發(fā)起 Get 請(qǐng)求
  • 自動(dòng)發(fā)起 POST 請(qǐng)求
  • 引誘用戶點(diǎn)擊鏈接

這幾種攻擊方式的前提

  • 目標(biāo)站點(diǎn)一定要有 CSRF 漏洞;
  • 用戶要登錄過目標(biāo)站點(diǎn)峭跳,并且在瀏覽器上保持有該站點(diǎn)的登錄狀態(tài)膘婶;
  • 需要用戶打開一個(gè)第三方站點(diǎn),可以是黑客的站點(diǎn)蛀醉,也可以是一些論壇悬襟。

具體流程參考下圖

image.png

危害

利用登陸態(tài),可以做任何你登陸某網(wǎng)站后的操作拯刁,例如轉(zhuǎn)賬脊岳,更改信息等等

防御

  • 充分利用好 Cookie 的 SameSite 屬性

Cookie 的SameSite屬性用來限制第三方 Cookie,從而減少安全風(fēng)險(xiǎn)筛璧。他可以設(shè)置三個(gè)值

1.Strict

瀏覽器會(huì)完全禁止第三方 Cookie逸绎,跨站點(diǎn)時(shí)惹恃,任何情況下都不會(huì)發(fā)送 Cookie夭谤。換言之,只有當(dāng)前網(wǎng)頁的 URL 與請(qǐng)求目標(biāo)一致巫糙,才會(huì)帶上 Cookie朗儒。

2.Lax

在跨站點(diǎn)的情況下Lax規(guī)則稍稍放寬,大多數(shù)情況也是不發(fā)送第三方 Cookie参淹,但是導(dǎo)航到目標(biāo)網(wǎng)址的 Get 請(qǐng)求除外醉锄。包括鏈接,預(yù)加載請(qǐng)求浙值,GET 表單恳不。而如果在第三方站點(diǎn)中使用 Post 方法,或者通過 img开呐、iframe 等標(biāo)簽加載的 URL烟勋,這些場(chǎng)景都不會(huì)攜帶 Cookie。

3.None

在任何情況下都會(huì)發(fā)送 Cookie 數(shù)據(jù)筐付,最新版本的Chrome中Lax變?yōu)槟J(rèn)設(shè)置卵惦。這時(shí),網(wǎng)站可以選擇顯式關(guān)閉SameSite屬性瓦戚,將其設(shè)為None沮尿。不過,前提是必須同時(shí)設(shè)置Secure屬性(Cookie 只能通過 HTTPS 協(xié)議發(fā)送)较解,否則無效畜疾。

更多:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Set-Cookie/SameSite

  • 驗(yàn)證請(qǐng)求的來源站點(diǎn)

根據(jù)HTTP 請(qǐng)求頭中的 Referer 和 Origin 屬性在服務(wù)器端驗(yàn)證請(qǐng)求來源的站點(diǎn)赴邻。Referer和Origin 都是 HTTP 請(qǐng)求頭中的一個(gè)字段,

  1. Referer記錄了該 HTTP 請(qǐng)求的來源地址庸疾。
  2. Origin屬性只包含了域名信息乍楚,并沒有包含具體的 URL 路徑。
  3. 服務(wù)器的策略是優(yōu)先判斷 Origin届慈,如果請(qǐng)求頭中沒有包含 Origin 屬性徒溪,再根據(jù)實(shí)際情況判斷是否使用 Referer 值。
  • CSRF Token
  1. 在瀏覽器向服務(wù)器發(fā)起請(qǐng)求時(shí)金顿,服務(wù)器生成一個(gè) CSRF Token臊泌。CSRF Token 其實(shí)就是服務(wù)器生成的字符串,然后將該字符串植入到返回的頁面中揍拆。
  2. 在瀏覽器端如果要發(fā)起某些請(qǐng)求渠概,那么需要帶上頁面中的 CSRF Token,然后服務(wù)器會(huì)驗(yàn)證該 Token 是否合法嫂拴。如果是從第三方站點(diǎn)發(fā)出的請(qǐng)求播揪,那么將無法獲取到 CSRF Token 的值,所以即使發(fā)出了請(qǐng)求筒狠,服務(wù)器也會(huì)因?yàn)?CSRF Token 不正確而拒絕請(qǐng)求猪狈。

語雀文檔地址

https://www.yuque.com/suihangadam/liulanqi
原文地址:https://www.cnblogs.com/suihang/p/13288540.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辩恼,隨后出現(xiàn)的幾起案子雇庙,更是在濱河造成了極大的恐慌,老刑警劉巖灶伊,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疆前,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡聘萨,警方通過查閱死者的電腦和手機(jī)竹椒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來米辐,“玉大人胸完,你說我怎么就攤上這事±苎” “怎么了舶吗?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長择膝。 經(jīng)常有香客問我誓琼,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任腹侣,我火速辦了婚禮叔收,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘傲隶。我一直安慰自己饺律,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布跺株。 她就那樣靜靜地躺著复濒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乒省。 梳的紋絲不亂的頭發(fā)上巧颈,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音袖扛,去河邊找鬼砸泛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蛆封,可吹牛的內(nèi)容都是我干的唇礁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惨篱,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼盏筐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妒蛇,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤机断,失蹤者是張志新(化名)和其女友劉穎楷拳,沒想到半個(gè)月后绣夺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡欢揖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年陶耍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片她混。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烈钞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坤按,到底是詐尸還是另有隱情毯欣,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布臭脓,位于F島的核電站酗钞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜砚作,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一窘奏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧葫录,春花似錦着裹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至面粮,卻和暖如春匠题,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背但金。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工韭山, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冷溃。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓钱磅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親似枕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盖淡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 此學(xué)習(xí)記錄來自于極客時(shí)間專欄瀏覽器工作原理與實(shí)踐,由于個(gè)人對(duì)這塊內(nèi)容比較感興趣凿歼,所以花錢買了專欄褪迟,但看完總覺得什么...
    Mstian閱讀 833評(píng)論 0 3
  • 之前所提及XSS攻擊最終都是將惡意腳本注入到頁面中,進(jìn)行后續(xù)操作答憔。還有另一種類型味赃,跨站請(qǐng)求偽造(CSRF)攻擊。 ...
    ByteJitter閱讀 361評(píng)論 0 1
  • 3虐拓、瀏覽器安全 3.1心俗、同源策略 什么是同源?如果兩個(gè)url的協(xié)議蓉驹、域名城榛、端口相同,就稱這兩個(gè)url是同源比如ht...
    完美_c978閱讀 1,888評(píng)論 0 0
  • 其實(shí), 前端的安全并沒有很多, 不過知道了, 起碼后端兄弟不會(huì)那么累了态兴。 本文主要討論以下幾種攻擊方式 : XSS...
    馬士兵教育網(wǎng)絡(luò)安全閱讀 503評(píng)論 0 0
  • 前言 想要成為一名合格的前端工程師狠持,掌握相關(guān)瀏覽器的工作原理是必備的,這樣子才會(huì)有一個(gè)完整知識(shí)體系瞻润,要是「能參透瀏...
    不行了快攔住我閱讀 1,595評(píng)論 0 2