自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

再來一打Web安全面試題

開發(fā) 前端
本文介紹了關(guān)于Web的一些安全面試題,可能對你有所幫助,一起來看一下吧。

[[331171]]

從胡子的長度和憂郁的眼神我察覺到,面前坐著的這位面試官應該有點東西。

渾身上下流露著打過CTF的氣場。我像以往一樣,準備花3分鐘的時間進行自我介紹。在此期間,面試官面無表情但很有耐心的聽著我bilibala。

我按照原定計劃順利地介紹(吹)完自己的項目經(jīng)驗,面試官露出了一絲淡淡的微笑看著我說:

你覺得自己最擅長的是什么?

(我淡淡的回應道:雖然是一名前端工程師,但是我對web安全很感興趣。)

0.CIA三元組知道嗎?

  •  機密性(Confidentiality)
  •  完整性(Integrity)
  •  可用性(Availability)

(這三個東西一定要回答的干凈利落,不假思索)

1.XSS攻擊是如何產(chǎn)生的?

黑客在你的瀏覽器中插入一段惡意 JavaScript 腳本,竊取你的隱私信息、冒充你的身份進行操作。這就是 XSS 攻擊(Cross-Site Scripting,跨站腳本攻擊)

因為瀏覽器無法區(qū)分腳本是被惡意注入的還是正常的內(nèi)容,它都會執(zhí)行,況且 HTML 非常靈活,可以在任何時候?qū)λM行修改。

2.知道XSS有哪幾種類型嗎?

(送分題)

  •  反射型 XSS (也叫非持久型)
  •  基于 DOM 的 XSS
  •  存儲型 XSS (也叫持久型 XSS)

3.分別說一下它們的實現(xiàn)原理

反射型:顧名思義,惡意 JavaScript 腳本屬于用戶發(fā)送給網(wǎng)站請求中的一部分,隨后網(wǎng)站又將這部分返回給用戶,惡意腳本在頁面中被執(zhí)行。一般發(fā)生在前后端一體的應用中,服務(wù)端邏輯會改變最終的網(wǎng)頁代碼。

基于DOM型:目前更流行前后端分離的項目,反射型 XSS 無用武之地。

但這種攻擊不需要經(jīng)過服務(wù)器,我們知道,網(wǎng)頁本身的 JavaScript 也是可以改變 HTML 的,黑客正是利用這一點來實現(xiàn)插入惡意腳本。

存儲型:又叫持久型 XSS,顧名思義,黑客將惡意 JavaScript 腳本長期保存在服務(wù)端數(shù)據(jù)庫中,用戶一旦訪問相關(guān)頁面數(shù)據(jù),惡意腳本就會被執(zhí)行。常見于搜索、微博、社區(qū)貼吧評論等。

4.說一說它們之間的區(qū)別

反射型的 XSS 的惡意腳本存在 URL 里,存儲型 XSS 的惡意代碼存在數(shù)據(jù)庫里。

而基于DOM型的XSS 攻擊中,取出和執(zhí)行惡意代碼由瀏覽器端完成,屬于前端 JavaScript 自身的安全漏洞,其他兩種 XSS 都屬于服務(wù)端的安全漏洞。

(面試官微微抬起頭,遞給我一張紙。)

5.再畫個圖解釋一下把

(好的,給你降維解釋一波)

反射型

基于DOM型

存儲型

(面試官:小伙子圖畫的不錯)

6.黑客可以通過XSS攻擊做哪些事兒?

  •  盜取用戶 Cookie
  •  未授權(quán)操作
  •  修改 DOM
  •  刷浮窗廣告
  •  發(fā)動 XSS 蠕蟲攻擊
  •  劫持用戶行為,進一步滲透內(nèi)網(wǎng)

(...太多了)

7.XSS攻擊如何進行防護?

  •  一切用戶輸入皆不可信,在輸出時進行驗證
  •  將 HTML 元素內(nèi)容、屬性以及 URL 請求參數(shù)、CSS 值進行編碼
  •  當編碼影響業(yè)務(wù)時,使用白名單規(guī)則進行檢測和過濾
  •  使用 W3C 提出的 CSP (Content Security Policy,內(nèi)容安全策略),定義域名白名單
  •  設(shè)置 Cookie 的 HttpOnly 屬性

8.知道哪些XSS攻擊案例簡單說一下

(沒想到你還愛聽新聞)

  •  2005年,年僅19歲的 Samy Kamkar 發(fā)起了對 MySpace.com 的 XSS Worm 攻擊。

    Samy Kamkar 的蠕蟲在短短幾小時內(nèi)就感染了100萬用戶——它在每個用戶的自我簡介后邊加了一句話:“but most of all, Samy is my hero.”(Samy是我的偶像)。這是 Web 安全史上第一個重量級的 XSS Worm,具有里程碑意義。

  •  2007年12月,百度空間收到蠕蟲攻擊,用戶之間開始轉(zhuǎn)發(fā)垃圾短消息。
  •  QQ 郵箱 m.exmail.qq.com 域名被發(fā)現(xiàn)反射型 XSS 漏洞
  •  2011年新浪微博曾被黑客 XSS 攻擊,黑客誘導用戶點擊一個帶有誘惑性的鏈接,便會自動發(fā)送一條帶有同樣誘惑性鏈接微博。攻擊范圍層層擴大,也是一種蠕蟲攻擊。

9.什么是CSRF攻擊?

CSRF 英文全稱是 Cross-site request forgery,又稱為“跨站請求偽造”。

顧名思義,CSRF 攻擊就是黑客引誘用戶打開黑客的網(wǎng)站,利用用戶的登陸狀態(tài)發(fā)起跨站請求。

降維解釋:攻擊者誘導受害者進入第三方網(wǎng)站,在第三方網(wǎng)站中,向被攻擊網(wǎng)站發(fā)送跨站請求。

利用受害者在被攻擊網(wǎng)站已經(jīng)獲取的注冊憑證,繞過后臺的用戶驗證, 達到冒充用戶對被攻擊的網(wǎng)站執(zhí)行某項操作的目的。

10.CSRF攻擊一般怎么實現(xiàn)?

  •  最容易實現(xiàn)的是 Get 請求,一般進入黑客網(wǎng)站后,可以通過設(shè)置 img的 src 屬性來自動發(fā)起請求
  •  在黑客的網(wǎng)站中,構(gòu)造隱藏表單來自動發(fā)起 Post 請求
  •  通過引誘鏈接誘惑用戶點擊觸發(fā)請求,利用 a 標簽的 href。

[點擊下載美女視頻]()

11.CSRF攻擊和XSS攻擊有什么區(qū)別?

CSRF 攻擊不需要將惡意代碼注入用戶的頁面,僅僅是利用服務(wù)器的漏洞和用戶的登錄狀態(tài)來實施攻擊。

CSRF 攻擊成本也比 XSS 低,用戶每天都要訪問大量網(wǎng)頁,無法確認每一個網(wǎng)頁的合法性,

從用戶角度來說,無法徹底防止 CSRF 攻擊。

12.那應該如何防范CSRF攻擊?

  •  針對實際情況,設(shè)置關(guān)鍵 Cookie 的 SameSite 屬性為 Strict 或 Lax
  •  服務(wù)端驗證請求來源站點(Referer、Origin)
  •  使用 CSRF Token,服務(wù)端隨機生成返回給瀏覽器的 Token,每一次請求都會攜帶不同的 CSRF Token
  •  加入二次驗證(獨立的支付密碼)

13.關(guān)于Web密碼學你了解哪些呢?

  •   對稱加密算法
    •   對稱加密算法就是加密和解密使用同一個密鑰,簡單粗暴
    •   常見的經(jīng)典對稱加密算法有 DES、AES(AES-128)、IDEA、國密SM1、國密SM4
  •  非對稱加密算法
    •   非對稱加密就是加密和解密使用不同的密鑰。發(fā)送方使用公鑰對信息進行加密,接收方收到密文后,使用私鑰進行解密。
    •   主要解決了密鑰分發(fā)的難題
    •   我們常說的簽名就是私鑰加密
    •   常見的經(jīng)典非對稱加密算法有RSA、ECC和國密SM2
  •  散列算法
    •   不可逆性、魯棒性、唯一性
    •   MD5、SHA(SHA-256)、國密SM3
    •   使用時記得加鹽

AES 是國際上最認可的密碼學算法,只要算力沒有極大的突破性進展,這種算法在可預期的未來都是安全的。

ECC 是目前國際上加密強度最高的非對稱加密算法。

MD5 和 SHA 的唯一性被破解了,但是大部分場景下,不會構(gòu)成安全問題。一般使用 SHA-256 加鹽即可滿足大部分使用場景。

14.簡單說一下HTTPS的實現(xiàn)原理

  •  Client 發(fā)送 random1+對稱加密套件列表+非對稱加密套件列表
  •  Server 收到信息, 選擇 對稱加密套件+非對稱加密套件 并和 random2+證書(公鑰在證書中) 一起返回
  •  Client 驗證證書有效性,并用 random1+random2 生成 pre-master 通過服務(wù)器公鑰加密+瀏覽器確認 發(fā)送給 Server
  •  Server 收到 pre-master,根據(jù)約定的加密算法對 random1+random2+pre-master(解密)生成 master-secret,然后發(fā)送服務(wù)器確認
  •  Client 收到生成同樣的 master-secert,對稱加密秘鑰傳輸完畢

(基操,勿6)

HTTPS 在 TCP 和 HTTP 中間加入了 SSL/TLS 安全層。

  •  對發(fā)起 HTTP 請求的數(shù)據(jù)進行加密操作
  •  對接收到 HTTP 的內(nèi)容進行解密操作。

采用對稱加密的方式加密傳輸數(shù)據(jù)和非對稱加密的方式來傳輸密鑰,既可以解決傳輸效率問題也能保證兩端數(shù)據(jù)的安全傳輸。除此之外,為了能夠證明服務(wù)器是可靠的,引入了數(shù)字證書,讓瀏覽器驗證證書的可靠性。

面試官拿起旁邊已經(jīng)涼透的烏龍茶,喝了一口。

(小伙子,有點東西) 

 

責任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2009-06-06 18:34:05

java面試題

2020-08-06 10:45:30

JavaSpring面試題

2022-05-08 19:36:35

Web前端時間復雜度

2020-06-04 14:40:40

面試題Vue前端

2019-12-13 16:00:11

Dubbo面試題Java

2023-11-13 07:37:36

JS面試題線程

2011-03-24 13:27:37

SQL

2012-02-02 09:45:24

Web

2015-09-02 09:32:56

java線程面試

2014-09-19 11:17:48

面試題

2009-06-06 18:36:02

java面試題

2023-07-28 08:04:56

StringHeaatomic線程

2012-04-17 09:55:29

云計算分布式

2021-12-01 09:25:58

SQL數(shù)據(jù)庫數(shù)據(jù)庫基礎(chǔ)

2024-10-11 17:09:27

2022-05-08 19:58:10

JSONPJavaScript

2011-07-18 15:08:19

SQL存儲過程

2012-06-28 14:35:49

Web

2022-01-18 08:16:52

Web 前端JavaScript

2025-02-26 07:58:41

點贊
收藏

51CTO技術(shù)棧公眾號