[英]Magento CSRF protection
我正在尋找Magento的自定義表格。 我看過這些教程
我沒有看到任何關於CSRF預防的提及,比如使用存儲在用戶會話中的客戶端令牌來檢查客戶端令牌。 我也查看了Magento聯系我們表格,看到了這個,但我不認為它與CSRF有關:
<input type="text" name="hideit" id="hideit" value="" style="display:none !important;">
Magento有沒有防止CSRF的默認代碼? Mage_Core_Controller_Front_Action的$ this-> getRequest() - > getParams()方法是否自動執行任何操作以防止我可能丟失的CSRF?
在Magento中實際上有一個前端CSRF令牌驗證方法,您可以使用該方法向自定義表單添加基於會話的唯一表單密鑰,並在控制器的操作中對其進行驗證。
要在提交表單時發送帶有請求的CSRF表單密鑰,請將<?php echo $this->getBlockHtml('formkey') ?>
代碼插入到表單的正文中。
這將生成如下輸入: <input type="hidden" value="unique16codehere" name="form_key">
。 要驗證密鑰,請在相應控制器的操作中使用_validateFormKey()
方法。
最終程序員用戶使用他們自己的CSFR / nonce保護方案, 除非他們在后端管理控制台中創建頁面/表單。 默認情況下,Magento管理控制台應用程序對其所有頁面/ URL都有此保護。
查核_validateSecretKey
在app/code/core/Mage/Adminhtml/Controller/Action.php
和getSecretKey
在方法app/code/core/Mage/Adminhtml/Model/Url.php
。 這可以很容易地擴展到您自己在前端的表單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.