Защита Magento CSRF

Я рассматриваю пользовательские формы в Magento. Я видел эти уроки

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

Magento – Custom email contact form with notification system

Я не видел упоминания о предотвращении CSRF, например, проверял токен клиента с сохраненным в сеансе пользователя. Я также посмотрел в форме Magento Contact Us и увидел это, но я не думаю, что это относится к CSRF:

<input type="text" name="hideit" id="hideit" value="" style="display:none !important;"> 

Есть ли у Magento код по умолчанию для предотвращения CSRF? Использует ли метод $ this-> getRequest () -> getParams () Mage_Core_Controller_Front_Action что-либо автоматически, чтобы предотвратить CSRF, который может отсутствовать?

Solutions Collecting From Web of "Защита Magento CSRF"

Конечный пользователь программиста должен использовать собственную схему защиты CSFR / nonce, если только они не создают страницу / форму в консоли администратора. По умолчанию консольное приложение Magento имеет эту защиту для всех своих страниц / URL-адресов.

Проверьте _validateSecretKey в app/code/core/Mage/Adminhtml/Controller/Action.php и метод getSecretKey в app/code/core/Mage/Adminhtml/Model/Url.php . Это может быть легко распространено на ваши собственные формы на интерфейсе.

На самом деле существует метод проверки подлинности маркера CSRF с интерфейсом в Magento, который вы можете использовать для добавления уникального ключа формы на основе сеанса в свою настраиваемую форму и проверки его в действии контроллера.

Чтобы отправить ключ формы CSRF с запросом при отправке формы, вставьте форму <?php echo $this->getBlockHtml('formkey') ?> В тело формы.

Это создаст такой ввод: <input type="hidden" value="unique16codehere" name="form_key"> . Чтобы проверить ключ, используйте метод _validateFormKey() в действии соответствующего контроллера.