成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

yii 2 局部關(guān)閉 CSRF 攔截

Paul_King / 2956人閱讀

摘要:最近在拿開發(fā)微信公眾平臺(tái),在微信請求接口時(shí),沒有返回?cái)?shù)據(jù),于是查詢錯(cuò)誤日志,發(fā)現(xiàn)錯(cuò)誤為于是查看源代碼,在我們繼承的頂級中,有下列屬性行的內(nèi),對他做了處理于是找到錯(cuò)誤原因內(nèi),對攻擊做了處理,會(huì)對提交的數(shù)據(jù)做驗(yàn)證,而微信到我們服務(wù)器的

最近在拿 yii 2.0 開發(fā)微信公眾平臺(tái),在微信 post 請求接口時(shí),沒有返回?cái)?shù)據(jù),于是查詢 yii 錯(cuò)誤日志,發(fā)現(xiàn)錯(cuò)誤為

exception ‘yiiwebBadRequestHttpException’ with message ‘Unable to verify your data submission

于是查看源代碼,yii 2.0 在 我們繼承的頂級 controller 中,有下列屬性

    /**
     * @var boolean whether to enable CSRF validation for the actions in this controller.
     * CSRF validation is enabled only when both this property and [[Request::enableCsrfValidation]] are true.
     */
    public $enableCsrfValidation = true;

106 行的 beforeAction 內(nèi),對他做了處理

public function beforeAction($action)
    {
        if (parent::beforeAction($action)) {
            if ($this->enableCsrfValidation && Yii::$app->getErrorHandler()->exception === null && !Yii::$app->getRequest()->validateCsrfToken()) {
                throw new BadRequestHttpException(Yii::t("yii", "Unable to verify your data submission."));
            }
            return true;
        } else {
            return false;
        }
    }

于是找到錯(cuò)誤原因:

yii 2.0 內(nèi),對 CSRF 攻擊做了處理,會(huì)對 post 提交的數(shù)據(jù)做 token 驗(yàn)證,而微信 post 到我們服務(wù)器的代碼中,沒有帶上這個(gè) token ,所以會(huì)驗(yàn)證失敗

解決方法:

1、在我們的控制器里面,加上這行屬性,設(shè)置為 false

public $enableCsrfValidation = false;

你還可以直接修改頂層控制器的 $enableCsrfValidation ,但是不推薦這樣做!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/20899.html

相關(guān)文章

  • 部門和人員全部實(shí)現(xiàn)無刷新并結(jié)合Csrf驗(yàn)證所遇問題

    摘要:根據(jù)文章的標(biāo)題,大家應(yīng)該看出來了,我在部門和人員這一模塊當(dāng)中就用了無刷新的技術(shù),一并結(jié)合自帶的驗(yàn)證。需求分析做一個(gè)部門和人員模塊全部使用無刷新技術(shù)開發(fā)。一大模塊全部實(shí)現(xiàn)無刷新,有些方法代碼量會(huì)很大,得把握好它們之間的相關(guān)性和其它互不影響性。 前言 Ajax+PHP實(shí)現(xiàn)動(dòng)態(tài)無刷新技術(shù)應(yīng)用及其廣泛,因?yàn)樗兄蓜?dòng)態(tài)的實(shí)現(xiàn)WEB頁面局部刷新,減輕服務(wù)器端負(fù)擔(dān),按需取數(shù)據(jù),能帶來更好的用戶體驗(yàn)...

    Zhuxy 評論0 收藏0
  • Yii修行之路 - Security 安全

    摘要:認(rèn)證事件類在登錄和注銷流程引發(fā)一些事件。成功注銷后引發(fā)。提供兩種授權(quán)方法存取控制過濾器和基于角色的存取控制。允許已認(rèn)證用戶執(zhí)行操作。指定一個(gè)回調(diào)函數(shù)用于判定該規(guī)則是否滿足條件。 簡述 在程序開發(fā)過程中,往往都不能忽視安全問題,無論你的框架有多么完美,都會(huì)有破綻,所以完善自己的系統(tǒng),從程序開發(fā)的安全角度去思考問題,把一切潛在的危機(jī)扼殺在搖籃中。 認(rèn)證(Authentication) 認(rèn)證...

    AaronYuan 評論0 收藏0
  • YII2項(xiàng)目常用技能知識(shí)總結(jié)

    摘要:不通過日志獲取執(zhí)行的原生語句和打印變量數(shù)據(jù)打印變量數(shù)據(jù)可以這樣寫引用命名空間使用使用第二個(gè)參數(shù)是數(shù)組的深度第三個(gè)參數(shù)是是否顯示代碼高亮默認(rèn)不顯示從數(shù)據(jù)庫二維數(shù)組中返回一維數(shù)組并配合驗(yàn)證規(guī)則實(shí)現(xiàn)分類數(shù)據(jù)過濾。 1、不通過日志獲取AR執(zhí)行的原生SQL語句和打印變量數(shù)據(jù) $query = User::find() ->select([username])->where([id=>[1,2,3...

    W_BinaryTree 評論0 收藏0
  • 理解CSRF跨站請求偽造

    摘要:受害者在銀行有一筆存款,通過對銀行的網(wǎng)站發(fā)送請求可以使把的存款轉(zhuǎn)到的賬號下。大多數(shù)情況下,該請求會(huì)失敗,因?yàn)樗蟮恼J(rèn)證信息。要抵御,關(guān)鍵在于在請求中放入黑客所不能偽造的信息,并且該信息不存在于之中。 受害者 Bob 在銀行有一筆存款,通過對銀行的網(wǎng)站發(fā)送請求 http://bank.example/withdraw?... 可以使 Bob 把 1000000 的存款轉(zhuǎn)到 bob2 的...

    nidaye 評論0 收藏0
  • session與登錄機(jī)制

    摘要:每次消費(fèi)時(shí),如果顧客出示這張卡片,則此次消費(fèi)就會(huì)與以前或以后的消費(fèi)相聯(lián)系起來。由于可以被人為的禁止,必須有其他機(jī)制以便在被禁止時(shí)仍然能夠把傳遞回服務(wù)器。 github 地址:戳這里 session 概念 指一類用來在客戶端與服務(wù)器之間保持狀態(tài)的解決方案 這種解決方案的存儲(chǔ)結(jié)構(gòu) 特點(diǎn) 由于 Session 是以文本文件形式存儲(chǔ)在服務(wù)器端的,所以不怕客戶端修改 Session 內(nèi)容。...

    nifhlheimr 評論0 收藏0

發(fā)表評論

0條評論

Paul_King

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<