È possibile farlo modificando il file config.php
$config['csrf_protection'] = FALSE;
Fase 1: creare una serie di pagine che si desidera proteggere
es. $csrf_pages = array('login','test');
Passaggio 2: verificare se è presente una richiesta per la pagina protetta, quindi impostarla su VERO;
if (isset($_SERVER["REQUEST_URI"])) {
foreach ($csrf_pages as $csrf_page){
if(stripos($_SERVER["REQUEST_URI"],$csrf_page) !== FALSE) {
$config['csrf_protection'] = TRUE;
break;
}
}
}
Fase 3: aggiungere questo al vostro punto di vista
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash();?>" />
o semplicemente utilizzare la funzione Form_Open() per aggiungere automaticamente il campo token CSRF nascosta.
Questa funzione è stata implementata in CI 3.0-DEV, se si utilizza v2.x di CI, dare un'occhiata a questa risposta e provarla: http://stackoverflow.com/a/15860653/1725764 –
@HashemQolami grazie, per favore lasciatelo come risposta per accettare. – esrpim
IMHO, in posa una risposta esatta non è una buona sorpresa, sarà contenuto duplicato. Ho pubblicato il link di una domanda simile che dovrebbe rimanere come riferimento. –