前端安全問題 XSS和CSRF

2021-09-22 01:35:28 字數 1486 閱讀 1069

xss又稱css,全稱crosssitescript,跨站指令碼攻擊,是web程式中常見的漏洞,xss屬於被動式且用於客戶端的攻擊方式,所以容易被忽略其危害性。

其原理是攻擊者向有 xss漏洞的**中輸入(傳入)惡意的html**,當其它使用者瀏覽該**時,這段html**會自動執行,從而達到攻擊的目的。如,盜取使用者 cookie、破壞頁面的正常結構,插入廣告等惡意內容、重定向到其它**,d-doss攻擊等;xss攻擊類似於sql注入攻擊,攻擊之前,我們先找到乙個存在xss漏洞的**。理論上,所有可輸入的地方沒有對輸入資料進行處理的話,都會存在xss漏洞,漏洞的危害取決於攻擊**的威力。

xss的防範措施主要有三個:

**csrf(cross-site request forgery,跨站點偽造請求)**是一種網路攻擊方式,該攻擊可以在受害者毫不知情的情況下以受害者名義偽造請求傳送給受攻擊站點,從而在未授權的情況下執行在許可權保護之下的操作,具有很大的危害性。具體來講,可以這樣理解csrf攻擊:攻擊者盜用了你的身份,以你的名義傳送惡意請求,對伺服器來說這個請求是完全合法的,但是卻完成了攻擊者所期望的乙個操作,比如以你的名義傳送郵件、發訊息,盜取你的賬號,新增系統管理員,甚至於購買商品、虛擬貨幣轉賬等。

上圖中過程為如下:

使用者c開啟瀏覽器,訪問受信任**a,輸入使用者名稱和密碼請求登入**a;

在使用者資訊通過驗證後,**a產生cookie資訊並返回給瀏覽器,此時使用者登入**a成功,可以正常傳送請求到**a;

使用者未退出**a之前,在同一瀏覽器中,開啟乙個tab頁訪問**b;

**b接收到使用者請求後,返回一些攻擊性**,並發出乙個請求要求訪問第三方站點a;

瀏覽器在接收到這些攻擊性**後,根據**b的請求,在使用者不知情的情況下攜帶cookie資訊,向**a發出請求。**a並不知道該請求其實是由b發起的,所以會根據使用者c的cookie資訊以c的許可權處理該請求,導致來自**b的惡意**被執行。

使用者是**a的註冊使用者,且登入進去,於是**a就給使用者下發cookie。

從上圖可以看出,要完成一次csrf攻擊,受害者必須滿足兩個必要的條件:

方法一、token 驗證:(用的最多)

伺服器傳送給客戶端乙個token;

客戶端提交的表單中帶著這個token。

如果這個 token 不合法,那麼伺服器拒絕這個請求。

方法二:隱藏令牌:

把 token 隱藏在 http 的 head頭中。

方法二和方法一有點像,本質上沒有太大區別,只是使用方式上有區別。

方法三、referer 驗證:

referer 指的是頁面請求**。意思是,只接受本站的請求,伺服器才做響應;如果不是,就攔截。

xss:不需要登入。

安全問題(XSS與CSRF)

一.xss 1.xss的定義 跨站指令碼攻擊 cross site scripting 縮寫為xss。惡意攻擊者往web頁面裡插入惡意script 當使用者瀏覽該頁之時,嵌入其中web裡面的script 會被執行,從而達到惡意攻擊使用者的目的。2.xss的攻擊方式 1 反射型 發出請求時,xss 出...

前端面試 07 安全問題 CSRF和XSS

3.區別 1.基本概念 縮寫 全稱?csrf cross site request forgery,跨站請求偽造 2.攻擊原理 3.防禦措施 方法1 token to k n 驗證 1 伺服器傳送給客戶端乙個token 2 客戶端提交的表單中帶著這個token。3 如果這個 token 不合法,那麼...

面試 07 安全問題 CSRF和XSS

面試中的安全問題,明確來說,就兩個方面 這兩個問題,一般不會問太難。有人問 sql注入算嗎?答案 這個其實跟前端的關係不是很大。問的不難,一般問 如果把攻擊原理和防禦措施掌握好,基本沒什麼問題。csrf cross site request forgery 跨站請求偽造。ps 中文名一定要記住。英文...