Autor
|
Tema: token contra CSRF (Leído 7,226 veces)
|
nØFi#
Overclock3r
Ex-Staff
Desconectado
Mensajes: 1.338
\x2E
|
Buenas, estoy programando un panel de admin con varios formularios para hacer cosas, la cuestion es que quiero añadir tokens en cada uno de ellos para evitar csrf. Tengo una duda sobre la creación de dicho token (un numero aleatorio pasado a md5), que seria mejor crear un unico token al hacer login en el panel y usar este para todos los formularios o crear un token distinto cada vez que se acceda a un formulario??
|
|
|
En línea
|
#
|
|
|
WHK
|
esque si haces un solo token para todo entonces el que entre al sistema podrá obtener ese token y usarlo contra otro usuario de esepanel y en el caso de que fuera uno por usuario estarias dando la posibilidad de que si alguien llega a robarle el token a alguien este le podrá ejecutar csrf, en cambio si ese token cambia en cada formulario aunque yo te robe el token no podré ejecutarte nada porque no se cual será el proximo token.
|
|
|
En línea
|
|
|
|
nØFi#
Overclock3r
Ex-Staff
Desconectado
Mensajes: 1.338
\x2E
|
Ahora me surge otra duda sobre la creacion de los tokens..
Supongamos que tenemos 40 formularios diferentes en el panel y cada vez que el usuario entra en uno se genera un token (se guarda el valor del token en la session).
Si el usuario entra en los 40 formularios sin hacer ningun cambio se generan 40 tokens distintos, la pregunta es: se guardan en diferentes variables de session? (es decir $_SESSION['token_formu1'],$_SESSION['token_formu2'],... ) o se guarda en la misma variable todos los formularios?
Guardarlo en diferentes variables lo veo muy ineficiente, porque si entran 1000 usuarios y se generan tropecientos mil valores en la session, el servidor ira muy cargado. Y si el valor se guarda en la misma variable.. que pasaria si se abren dos formularios distintos en pestañas?? petaria fuerte XD
Nose como seria la mejor forma, alguna idea?
Thx!
|
|
|
En línea
|
#
|
|
|
nØFi#
Overclock3r
Ex-Staff
Desconectado
Mensajes: 1.338
\x2E
|
Me he estado leyendo este paper (muy bueno por cierto) y proponen varios metodos para evitar CSRF. Un metodo que me ha gustado es el de generar un token concatenando varios parametros (por ejemplo 'nombre_del_formulario'+secret+sesionID), encriptarlo y meterlo en un hidden (sin guardar en session). Luego cuando validas el formulario vuelves a hacer la concatenacion y comparas que sea igual que el hidden. Este metodo no necesita guardar nada en session, pero por contra necesita mas cpu para ejecutarlo. Creo que usaré este metodo.. alguna sugerencia??
|
|
« Última modificación: 22 Octubre 2009, 11:28 am por nØFi# »
|
En línea
|
#
|
|
|
WHK
|
cuando el usuario inicia sesion le haces session_start() y le declaras una variable en su base de datos llamada, luego cuano se carguen los datos a la variable donde contiene los datos del usuario con select * from users tendrás el valor del token y utilizas ese para todos los formularios, luego verificas si el valor del token enviado por la peticion post corresponde al token de su sesion entonces todo bien, si no entonces que indique que su sesion no es valida.
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
trabajar con un token
Programación C/C++
|
bash
|
3
|
3,492
|
11 Enero 2012, 11:41 am
por Eternal Idol
|
|
|
csrf token
Hacking
|
fokin
|
2
|
3,363
|
21 Noviembre 2013, 17:27 pm
por fokin
|
|
|
[netkey] Token HSBC
Hacking
|
Diabliyo
|
0
|
3,121
|
18 Marzo 2014, 19:58 pm
por Diabliyo
|
|
|
[Pregunta]: Token CSRF
Desarrollo Web
|
Leguim
|
4
|
3,324
|
4 Diciembre 2019, 05:17 am
por @XSStringManolo
|
|
|
[Aporte] Validacion de token de forma Criptografica, evitar ataques CSRF
Desarrollo Web
|
AlbertoBSD
|
8
|
5,360
|
14 Diciembre 2019, 03:05 am
por AlbertoBSD
|
|