日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

csrf攻击防御 php,Yii2.0防御csrf攻击方法

發(fā)布時(shí)間:2025/4/5 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 csrf攻击防御 php,Yii2.0防御csrf攻击方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

yii2中無論是用測(cè)試工具POSTMAN、用命令行CURL請(qǐng)求、ajax請(qǐng)求總是會(huì)得到http400:Bad Request的錯(cuò)誤;而如果用Web網(wǎng)頁方式GET訪問(去除verbFilter的POST限制),是正常的

通過查閱資料發(fā)現(xiàn),這是CRSF驗(yàn)證的原因

原理:

Cookie Hashing, 讓服務(wù)器發(fā)送給客戶端的所有表單中都標(biāo)示一個(gè)隨機(jī)值_csrf,并同時(shí)在客戶端的COOKIE中保存一個(gè)相關(guān)聯(lián)的token;

驗(yàn)證的時(shí)候,服務(wù)端每次對(duì)接收到的請(qǐng)求_POST()過來的一個(gè)input hidden _csrf跟客戶端的COOKIE中的token進(jìn)行對(duì)照驗(yàn)證

攻擊者攻擊的原理是利用了客戶端的COOKIE,但是攻擊者是得不到COOKIE具體的內(nèi)容的,他只是利用(這里拋開XSS攻擊的可能性,由于用戶的Cookie很容易由于網(wǎng)站的XSS漏洞而被盜取,這就另外的1%。一般的攻擊者看到有需要算Hash值,基本都會(huì)放棄了);所以攻擊者沒法在攻擊URL中加入token,這樣就無法通過驗(yàn)證。

這可能是最簡(jiǎn)單的解決方案了,因?yàn)楣粽卟荒塬@得第三方的Cookie(理論上),所以表單中的數(shù)據(jù)也就構(gòu)造失敗了

解決方案:

1.禁用CRSF驗(yàn)證(不推薦):'enableCsrfValidation' => false,

'components'?=>?[

'request'?=>?[

'cookieValidationKey'?=>?'83r5HbITBiMfmiYPOZFdL-raVp4O1VV4',

'enableCookieValidation'?=>?false,

'enableCsrfValidation'?=>?false,

]

2.數(shù)據(jù)提交時(shí),攜帶 csrf 信息

a.調(diào)用組件ActiveForm時(shí),提交數(shù)據(jù)會(huì)自動(dòng)帶上_csrf

b.ajax提交時(shí)可以在頭部獲取到csrf信息(如下圖),與要提交的數(shù)據(jù)一并提交即可

c.也可以通過php獲取csrf信息

Yii::$app->request->csrfParam;(獲取csrf-param)

Yii::$app->request->csrfToken;(獲取csrf-token)

總結(jié)

以上是生活随笔為你收集整理的csrf攻击防御 php,Yii2.0防御csrf攻击方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。