在學習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...