xss_clean true password form_open form php ajax codeigniter

php - true - ¿Obteniendo el token CSRF de Codeigniter sin un formulario?



xss_clean php (3)

Tengo la protección CSRF habilitada en mi sitio, pero la única vez que se coloca el token CSRF en un campo oculto es cuando se usa form_close() . Estoy publicando datos a través de ajax y necesito enviar el CSRF también para evitar los 500 errores.

Pensé que había una manera de incrustar explícitamente el token CSRF en la página, pero parece que no puedo encontrarlo.

¿Cómo puedo obtener el token CSRF cuando no hay un formulario en la página?


Añádelo al formulario de esta manera.

<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">


Aquí hay un ejemplo que muestra cómo habilitar el modo de ataque CSRF:

<script> var cct = ''<?php echo $this->security->get_csrf_hash() ?>''; var get_csrf_token_name = ''<?php echo $this->security->get_csrf_token_name() ?>''; $.ajaxSetup({ type:''post'', data:{ <?php echo $this->security->get_csrf_token_name() ?> :cct} }); var siteurl = ''<?= site_url()?>''; </script>


Puede obtener el nombre y el valor del token CSRF a través de la clase de seguridad:

$this->security->get_csrf_hash(); $this->security->get_csrf_token_name();