php security magento csrf owasp

php - Protección Magento CSRF



laravel get token csrf (2)

Estoy buscando formularios personalizados en Magento. Vi estos tutoriales

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/

No vi ninguna mención de prevención de CSRF, como verificar un token de cliente con uno almacenado en una sesión de usuario. También busqué en el formulario de contacto de Magento y lo vi, pero no creo que se relacione con CSRF:

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

¿Magento tiene algún código predeterminado para prevenir CSRF? ¿El método $ this-> getRequest () -> getParams () de Mage_Core_Controller_Front_Action hace algo automáticamente para evitar CSRF que me puede estar perdiendo?


El usuario final del programador debe usar su propio esquema de protección CSFR / nonce, a menos que esté creando una página / formulario en la consola administrativa de back-end. La aplicación de consola de administración de Magento tiene esta protección para todas sus páginas / URL de manera predeterminada.

Consulte _validateSecretKey en la app/code/core/Mage/Adminhtml/Controller/Action.php y el método getSecretKey en la app/code/core/Mage/Adminhtml/Model/Url.php . Esto podría extenderse fácilmente a sus propios formularios en la interfaz.


En realidad, hay un método de validación de token CSRF de frontend en Magento que puede usar para agregar una clave de formulario única basada en sesión a su formulario personalizado y validarlo en la acción del controlador.

Para enviar una clave de formulario CSRF con la solicitud al enviar un formulario, inserte el código <?php echo $this->getBlockHtml(''formkey'') ?> En el cuerpo del formulario.

Esto generará una entrada como esta: <input type="hidden" value="unique16codehere" name="form_key"> . Para validar la clave, use el método _validateFormKey() en la acción del controlador respectivo.