Elemento CSRF

Elemento CSRF
O elemento CSRF é um elemento de segurança que ao ser exibido, preferencialmente em modo “hidden”, gera um código e será enviado junto com os outros dados digitados pelo usuário quando houver submissão.
Ao verificarmos se os dados dentro do formulário estão válidos, haverá uma verificação desse código de segurança, e caso ele não exista ou seja diferente do esperado seu formulário não passará na validação.
Esse elemento impede que formulários falsos e maliciosos sejam criados e apontem seus posts para nossa aplicação, gerando assim inserções ou alterações sem segurança alguma. Com esse código, torna-se impossível ser aceito uma submissão que não seja do nosso próprio formulário.
Abaixo o nosso exemplo de formulário com o elemento CSRF.


namespace Application\Form;
use Zend\Form;
class MyForm extends Form {
     function __contruct() {
         $this->setAttribute(‘method’, ‘post’);
         $this->setAttribute(‘id’, ‘my-form’);
         $this->add(
          array(
              ‘name’ => ‘sex’,
              ‘type’ => ‘Zend\Form\Element\Select’,
              ‘options’ => array(
                  ‘label’ => ‘Sex:’,
                  “value_options” => array(
                                                “” => “- Choose your sex -“,
                                                “0” => “Male”,
                                                “1” => “Female”,
                                           ),
              ),
              ‘attributes’ => array(
                  ‘style’ => ‘width: 350px’
              )
          )
      );
      $this->add(
          array(
              ‘name’ => ‘name’,
              ‘options’ => array(
                  ‘label’ => ‘Name:’
              ),
              ‘attributes’ => array(
                  ‘class’ => ‘biggest’,
              )
          )
      );
      $this->add(
          array(
              ‘name’ => ‘btnsubmit’,
              ‘options’ => array(
                  ‘label’ => ‘Submit’
              ),
              ‘attributes’ => array(
                  ‘class’ => ‘btn’,
                  ‘type’ => ‘submit’
              )
          )
      );
      $this->add(
          array(
              ‘type’ => ‘Zend\Form\Element\Csrf’,
              ‘name’ => ‘security’,
          )
      );
    }
}


Para exibí-lo na view basta usarmos o ViewHelper FormHidden, que escreverá a tag do nosso elemento em um campo hidden, ou seja, de modo invisível aos usuários. Veja abaixo.


     
              $form->prepare();
              echo $this->form()->openTag($form);
              echo $this->formRow($form->get(‘name’));
              echo $this->formRow($form->get(‘sex’));
             echo $this->formHidden($form->get(‘security’));
     ?>

              formButton($form->get(‘btnsubmit’)); ?>
     
     form()->closeTag(); ?>

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s