国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

yii 2 局部關閉 CSRF 攔截

Paul_King / 2945人閱讀

摘要:最近在拿開發微信公眾平臺,在微信請求接口時,沒有返回數據,于是查詢錯誤日志,發現錯誤為于是查看源代碼,在我們繼承的頂級中,有下列屬性行的內,對他做了處理于是找到錯誤原因內,對攻擊做了處理,會對提交的數據做驗證,而微信到我們服務器的

最近在拿 yii 2.0 開發微信公眾平臺,在微信 post 請求接口時,沒有返回數據,于是查詢 yii 錯誤日志,發現錯誤為

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 內,對他做了處理

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;
        }
    }

于是找到錯誤原因:

yii 2.0 內,對 CSRF 攻擊做了處理,會對 post 提交的數據做 token 驗證,而微信 post 到我們服務器的代碼中,沒有帶上這個 token ,所以會驗證失敗

解決方法:

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

public $enableCsrfValidation = false;

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20899.html

相關文章

  • 部門和人員全部實現無刷新并結合Csrf驗證所遇問題

    摘要:根據文章的標題,大家應該看出來了,我在部門和人員這一模塊當中就用了無刷新的技術,一并結合自帶的驗證。需求分析做一個部門和人員模塊全部使用無刷新技術開發。一大模塊全部實現無刷新,有些方法代碼量會很大,得把握好它們之間的相關性和其它互不影響性。 前言 Ajax+PHP實現動態無刷新技術應用及其廣泛,因為它有著可動態的實現WEB頁面局部刷新,減輕服務器端負擔,按需取數據,能帶來更好的用戶體驗...

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

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

    AaronYuan 評論0 收藏0
  • YII2項目常用技能知識總結

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

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

    摘要:受害者在銀行有一筆存款,通過對銀行的網站發送請求可以使把的存款轉到的賬號下。大多數情況下,該請求會失敗,因為他要求的認證信息。要抵御,關鍵在于在請求中放入黑客所不能偽造的信息,并且該信息不存在于之中。 受害者 Bob 在銀行有一筆存款,通過對銀行的網站發送請求 http://bank.example/withdraw?... 可以使 Bob 把 1000000 的存款轉到 bob2 的...

    nidaye 評論0 收藏0
  • session與登錄機制

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

    nifhlheimr 評論0 收藏0

發表評論

0條評論

Paul_King

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<