2011-06-05 24 views
16

Recientemente me enteré de los ataques CSRF y me complació descubrir que la protección CSRF se había agregado a Codeigniter v 2.0.0.Codeigniter CSRF: cómo funciona

He activado la función y vio que un campo oculto con un token se añade en formas y supongo que almacena el token en una sesión también. En solicitudes POST, ¿CI compara automáticamente tokens o tengo que hacerlo manualmente?

Respuesta

29

de contadores a el CSRF se añade a la forma como un campo oculto sólo cuando se utiliza la función form_open().

Una cookie con el valor del token CSRF es creada por la clase Security y se regenera si es necesario para cada solicitud.

Si existe $_POST datos, la cookie es validada automáticamente por la clase Input. Si el token publicado no coincide con el valor de la cookie, CI mostrará un error y no procesará los datos $_POST.

Así que, básicamente, es todo automático, todo lo que tiene que hacer es habilitarlo en su $config['csrf_protection'] y utilizar la función form_open() para su formulario.

Un buen artículo que encontré que lo explica muy bien: https://beheist.com/blog/csrf-protection-in-codeigniter-2-0-a-closer-look.html

+1

Gracias ¡por la aclaración! Estoy muy contento de haber elegido CI como mi framework :) – CyberJunkie

+0

Gracias pero el enlace está muerto – 4Jean

+0

Enlace actualizado, gracias 4Jean. –

1

Cuando la protección CSRF activar los controles de seguridad de clase este token de forma automática (se compara con el token de token de la POST cookie)

1

remitir este Enlace - Used CSRF Tokens using form helper or Manually

El artículo explica cómo evitar con CSRF Fichas en

  • forma abierta con el asistente de formulario form_open() función
  • en formas ajax
  • ajax/jQuery serialización forma

En este artículo también explica acerca de cómo "Desactivar CSRF para los URL cetain (que se utilizan como direcciones URL de servicio web)"