日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發布時間:2025/4/5 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 csrf攻击防御 php,Yii2.0防御csrf攻击方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

通過查閱資料發現,這是CRSF驗證的原因

原理:

Cookie Hashing, 讓服務器發送給客戶端的所有表單中都標示一個隨機值_csrf,并同時在客戶端的COOKIE中保存一個相關聯的token;

驗證的時候,服務端每次對接收到的請求_POST()過來的一個input hidden _csrf跟客戶端的COOKIE中的token進行對照驗證

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

這可能是最簡單的解決方案了,因為攻擊者不能獲得第三方的Cookie(理論上),所以表單中的數據也就構造失敗了

解決方案:

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

'components'?=>?[

'request'?=>?[

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

'enableCookieValidation'?=>?false,

'enableCsrfValidation'?=>?false,

]

2.數據提交時,攜帶 csrf 信息

a.調用組件ActiveForm時,提交數據會自動帶上_csrf

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

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

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。