摘要:最近在拿開發(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
摘要:根據(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)...
摘要:認(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)證...
摘要:不通過日志獲取執(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ǎ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 的...
摘要:每次消費(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)容。...
閱讀 2225·2019-08-30 15:53
閱讀 2454·2019-08-30 12:54
閱讀 1205·2019-08-29 16:09
閱讀 730·2019-08-29 12:14
閱讀 757·2019-08-26 10:33
閱讀 2483·2019-08-23 18:36
閱讀 2960·2019-08-23 18:30
閱讀 2121·2019-08-22 17:09