web安全 深入淺出XSS攻擊

2021-09-20 14:58:24 字數 2162 閱讀 1697

在學習js的過程中,你一定聽說過csrf攻擊和xss攻擊。關於csrf攻擊,我已經在之前的文章中介紹過了,本文就來介紹一下xss攻擊。

發出請求時,xss**出現在url中,作為輸入提交到服務端,服務端解析後響應,xss**隨響應內容一起回傳給瀏覽器,最後瀏覽器解析並執行xss**。

一般xss防禦措施有三種:

1. 構建乙個express應用

對於沒有過node開發經驗的同學,我這裡簡單介紹一下建立express應用的步驟。

建立乙個目錄mkdir xss利用express命令,在當前目錄下建立乙個express腳手架express -e ./安裝所有依賴npm install啟動服務npm start訪問localhost:3000

2. 修改腳手架**,使得url中引數隨響應內容回傳給瀏覽器

var express =

require

('express');

var router = express.

router()

;/* get home page. */

router.

get(

'/',

function

(req, res, next));

});module.exports = router;

>

>

>

title

>

rel=

'stylesheet'

href

='/stylesheets/style.css'

/>

head

>

>

>

h1>

>

welcome to p

>

>

div>

body

>

html

>

3. 引數中攜帶有攻擊性的指令碼

攜帶img

標籤:

這是在響應頭里預設加入了xss防禦檢查標誌,瀏覽器做了xss防禦保護。我們這裡先關閉。

var express =

require

('express');

var router = express.

router()

;/* get home page. */

router.

get(

'/',

function

(req, res, next));

});module.exports = router;

此時可以看到alert彈窗就彈出來了。

此時,我們就成功進行了一次xss攻擊。

demo位址

為什麼要進行url編碼?

http協議中引數的傳輸是「key=value」鍵值對的形式,如果要傳輸多個引數要用「&」符號進行分割。這樣伺服器在接收到這種字串的時候,會用「&」符號分割出每個引數,再用「=」分割出引數值。

現在有這樣乙個問題:當引數中包含「=」或「&」等特殊字元時,伺服器解析字串就會出錯。所以,需要對特殊字元進行編碼。

web安全 XSS攻擊

xss xss,即為 cross site scripting 中文名為跨站指令碼 不使用css縮寫是為了與層疊樣式表區分 是發生在目標使用者的瀏覽器層面上的,當渲染dom樹的過程成執行了不在預期內的js 時,就發生了xss攻擊。xss分為反射型xss,儲存型xss和dom xss 1 反射型xss...

深入淺出軟體中所潛在的安全隱患(XSS漏洞篇)

小時候,我的媽媽常告訴我,清,在草叢雜亂的地方可能會有蛇,還有在有很多刺的地方,還有 當我們走過那些路段時,要先用棍子或者別的工具探探路!以免 所以,每當經過媽媽所提醒到的那些環境當中時,我就會按照媽媽的話去做,先用棍子或者別的工具探探路 這裡,我將以cnblogs前段時間出現的快閃儲存器的xss漏...

深入淺出sizeof

int佔 位元組,short佔 位元組 1.0 回答下列問題 答案在文章末尾 1.sizeof char 2.sizeof a 3.sizeof a 4.strlen a 如果你答對了全部四道題,那麼你可以不用細看下面關於sizeof的論述。如果你答錯了部分題目,那麼就跟著我來一起 關於sizeof...