前端的安全 CXRF、XSS、sql注入

1.1、CXRF

CSRF概念:

CSRF跨站點(diǎn)請(qǐng)求偽造(Cross—Site Request Forgery),存在巨大的危害性,你可以這樣來(lái)理解:
? 攻擊者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求,對(duì)服務(wù)器來(lái)說(shuō)這個(gè)請(qǐng)求是完全合法的,但是卻完成了攻擊者所期望的一個(gè)操作,比如以你的名義發(fā)送郵件、發(fā)消息,盜取你的賬號(hào),添加系統(tǒng)管理員,甚至于購(gòu)買(mǎi)商品、虛擬貨幣轉(zhuǎn)賬等。 如下:其中Web A為存在CSRF漏洞的網(wǎng)站,Web B為攻擊者構(gòu)建的惡意網(wǎng)站,User C為Web A網(wǎng)站的合法用戶

1.2、CSRF攻擊攻擊原理及過(guò)程如下:
  • 用戶C打開(kāi)瀏覽器,訪問(wèn)受信任網(wǎng)站A,輸入用戶名和密碼請(qǐng)求登錄網(wǎng)站A
  • 在用戶信息通過(guò)驗(yàn)證后,網(wǎng)站A產(chǎn)生Cookie信息并返回給瀏覽器,此時(shí)用戶登錄網(wǎng)站A成功,可以正常發(fā)送請(qǐng)求到網(wǎng)站A
  • 用戶未退出網(wǎng)站A之前,在同一瀏覽器中,打開(kāi)一個(gè)TAB頁(yè)訪問(wèn)網(wǎng)站B
  • 網(wǎng)站B接收到用戶請(qǐng)求后,返回一些攻擊性代碼,并發(fā)出一個(gè)請(qǐng)求要求訪問(wèn)第三方站點(diǎn)A
目前防御 CSRF 攻擊主要有2種策略:驗(yàn)證 HTTP Referer 字段;在請(qǐng)求地址中添加 token 并驗(yàn)證

2、XSS

XSS概念:

XSS, 即為(Cross Site Scripting), 中文名為跨站腳本, 是發(fā)生在目標(biāo)用戶的瀏覽器層面上的,當(dāng)渲染DOM樹(shù)的過(guò)程成發(fā)生了不在預(yù)期內(nèi)XSS(Cross Site Scripting),跨站腳本攻擊,是一種允許攻擊者在另外一個(gè)用戶的瀏覽器中執(zhí)行惡意代碼腳本的腳本注入式攻擊。本來(lái)縮小應(yīng)該是CSS,但為了和層疊樣式(Cascading Style Sheet,CSS)有所區(qū)分,故稱XSS執(zhí)行的JS代碼時(shí),就發(fā)生了XSS攻擊

2.1、持續(xù)型XSS攻擊:惡意腳本來(lái)源于網(wǎng)站的數(shù)據(jù)庫(kù)
  • 攻擊者通過(guò)評(píng)論表單提交將<script\>alert(‘a(chǎn)aa’)</script\>提交到網(wǎng)站
  • 網(wǎng)站后端對(duì)提交的評(píng)論數(shù)據(jù)不做任何操作,直接存儲(chǔ)到數(shù)據(jù)庫(kù)中
  • 其他用戶訪問(wèn)正常訪問(wèn)網(wǎng)站,并且需要請(qǐng)求網(wǎng)站的評(píng)論數(shù)據(jù)
  • 網(wǎng)站后端會(huì)從數(shù)據(jù)庫(kù)中取出數(shù)據(jù),直接返回給用戶
  • 用戶得到頁(yè)面后,直接運(yùn)行攻擊者提交的代碼<script>alert(‘a(chǎn)aa’)</script>`,所有用戶都會(huì)在網(wǎng)頁(yè)中彈出aaa的彈窗
2.2 、反射型XSS攻擊:惡意腳本來(lái)源于受害者的請(qǐng)求

在一個(gè)反射型XSS攻擊中,惡意文本屬于受害者發(fā)送給網(wǎng)站的請(qǐng)求中的一部分。隨后網(wǎng)站又把惡意文本包含進(jìn)用于響應(yīng)用戶的返回頁(yè)面中,發(fā)還給用戶。

  • 用戶誤點(diǎn)開(kāi)了帶攻擊的url :http://xxx?keyword=<script\>alert('aaa')</script\>
  • 網(wǎng)站給受害者的返回中包含了來(lái)自URL的的惡意文本
  • 用戶的瀏覽器收到文本后執(zhí)行頁(yè)面,會(huì)在網(wǎng)頁(yè)中彈窗aaa
2.3、如何防止攻擊

XSS攻擊其實(shí)就是代碼的注入。用戶的輸入被編譯成惡意的程序代碼。所以,為了防范這一類代碼的注入,需要確保用戶輸入的安全性。對(duì)于攻擊驗(yàn)證,我們可以采用以下兩種措施:

  • 編碼,就是轉(zhuǎn)義用戶的輸入,把用戶的輸入解讀為數(shù)據(jù)而不是代碼
  • 校驗(yàn),對(duì)用戶的輸入及請(qǐng)求都進(jìn)行過(guò)濾檢查,如對(duì)特殊字符進(jìn)行過(guò)濾,設(shè)置輸入域的匹配規(guī)則等
3、SQL注入

SQL注入就是一種通過(guò)操作輸入來(lái)修改后臺(tái)SQL語(yǔ)句達(dá)到代碼執(zhí)行進(jìn)行攻擊目的的技術(shù)

前端數(shù)據(jù)傳輸安全

  • hash加密:md5 sha256
  • 對(duì)稱加密: AES ,DES
  • 非對(duì)稱加密:生成一對(duì)鑰匙,公鑰,私鑰。 公鑰是由私鑰生成的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容