Evite ataques CSRF criando formulários com JavaScript no CakePHP
-
13-12-2019 - |
Pergunta
Documentação do CakePHP diz que para evitar ataques CSRF é necessário incluir o Segurança componente no controlador e, além disso, criar o formulário usando o FormHelper.
No meu caso, preciso criar alguns campos de formulário (como uma área de texto) usando JavaScript (jQuery) e por isso não posso usar o FormHelper para eles.
$('#body').html('<textarea name="data[post][body]" type="textarea" cols="30" rows="3">'+text+'</textarea>');
E claro, não passa na segurança e o formulário não é enviado.
Existe alguma maneira de criar um formulário seguro criando alguns campos com JavaScript?
Obrigado.
Solução
Bem, uma opção que você tem é desbloquear esses campos para que sejam ignorados na verificação de segurança.Na sua opinião, escreva:
<?php $this->Form->unlockField('fieldname'); ?>
Outra opção seria criar os campos do formulário que deseja adicionar dinamicamente com o auxiliar Formulário em uma área oculta do formulário e mostrá-los apenas se necessário.