簡體   English   中英

Magento CSRF保護

[英]Magento CSRF protection

我正在尋找Magento的自定義表格。 我看過這些教程

http://fastdivision.com/2012/03/29/diy-magento-create-ajax-login-registration-forms-for-your-magento-theme/

http://inchoo.net/ecommerce/magento/magento-email/magento-custom-email-contact-form-with-notification-system/

我沒有看到任何關於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都有此保護。

查核_validateSecretKeyapp/code/core/Mage/Adminhtml/Controller/Action.phpgetSecretKey在方法app/code/core/Mage/Adminhtml/Model/Url.php 這可以很容易地擴展到您自己在前端的表單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM