WEB安全 XSS和XSRF介紹及防禦手段

2021-09-28 12:41:06 字數 2094 閱讀 4375

跨站指令碼攻擊(cross site scripting)

xss攻擊分為:反射型、儲存型、dom型

反射型利用頁面缺陷,執行指令碼,從而獲取使用者資訊。

比如:頁面獲取使用者輸入資訊(使用者輸入),服務端未經過字串轉義或處理,直接返回到客戶端。

瀏覽器就很容易受到xss攻擊,比如可以在頁面新增指令碼,把使用者cookie資訊傳送到黑客伺服器上。這樣黑客就可以獲得使用者登入態,進行模擬登陸。

儲存型利用使用者輸入框,把指令碼通過輸入框傳送給服務端,使服務端把指令碼儲存在資料庫中,當有使用者訪問頁面時候,頁面載入資料時候把指令碼也載入進去,導致大面積使用者資訊被洩露

防範xss手段

1、head

ctx.

set(

'x-xss-protection',0

)// 禁止xss過濾

//可以攔截 但偽裝一下就不行了

0

禁止xss過濾。

1啟用xss過濾(通常瀏覽器是預設的)。 如果檢測到跨站指令碼攻擊,瀏覽器將清除頁面(刪除不安全的部分)。

1;mode=block

啟用xss過濾。 如果檢測到攻擊,瀏覽器將不會清除頁面,而是阻止頁面載入。

1; report= (chromium only)

啟用xss過濾。 如果檢測到跨站指令碼攻擊,瀏覽器將清除頁面並使用csp report-uri 指令的功能傳送違規報告。

什麼是csp

內容安全策略 (csp, content security policy)

是乙個附加的安全層,用於幫助檢測和緩解某些型別的攻擊,包括跨站指令碼 (xss) 和資料注入等攻擊。

這些攻擊可用於實現從資料竊取到**破壞或作為惡意軟體分發版本等用途。

csp 本質上就是建立白名單,開發者明確告訴瀏覽器哪些外部資源可以載入和執行。我們只需要配置規

則,如何攔截是由瀏覽器自己實現的。我們可以通過這種方式來儘量減少 xss 攻擊。

// 只允許載入本站資源

content-security-policy:

default

-src 'self'

// 只允許載入 https 協議

// 不允許載入任何**框架

content-security-policy: child-src 'none'

ctx.

set(

'content-security-policy'

,"default-src 'self'"

)// 嘗試一下外部資源不能載入

/script>

2、轉義字元

把所有接收字串進行轉義處理,伺服器轉義接收,轉義輸出;當涉及富文字編輯器時候,這條不好用。

3、黑名單

使用者的輸入永遠不可信,對使用者輸入的敏感內容進行轉義

一般黑客都是通過此手段竊取使用者登入態資訊cookie,那麼我們使用httponly則可以有效防止cookie在客戶端被獲取到。

csrf(cross site request forgery),跨站請求偽造

使用者已經登入了站點 a,並在本地記錄了 cookie

在使用者沒有登出站點 a 的情況下(也就是 cookie 生效的情況下),訪問了惡意攻擊者提供的引誘危險站點 b(b 站點要求訪問站點a)。

站點 a 沒有做任何 csrf 防禦

即竊取站點a登入後的cookie,然後在站點b觸發請求,此時請求攜帶站點a的cookie,則可以做到跳過登入傳送請求。

web安全 XSS攻擊

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

web安全(xss攻擊和csrf攻擊)

1 csrf攻擊 csrf cross site request forgery 跨站請求偽造。1 攻擊原理 如上圖,在b 引誘使用者訪問a 使用者之前登入過a 瀏覽器 cookie 快取了身份驗證資訊 通過呼叫a 的介面攻擊a 2 防禦措施 1 token驗證 登陸成功後伺服器下發token令牌存...

web安全之xss攻擊

xss攻擊的全稱是cross site scripting xss 攻擊,是一種注入式攻擊。基本的做法是把惡意 注入到目標 由於瀏覽器在開啟目標 的時候並不知道哪些指令碼是惡意的,所以瀏覽器會無差別執行惡意指令碼,從而導致使用者資訊和一些敏感資訊被盜取和洩漏。xss一般分為兩種型別,持久化的xss和...