CSRF Attack Detected - ¿Qué es?
MaTaJaRo
¡Saludos desde el manicomio!
Hoy vengo a explicaros lo que es el mensajito de CSRF Attack Detected, por qué aparece, y por qué los programadores de eRepublik aún no lo han arreglado.
Bien, lo primero... ¿Qué es un ataque tipo CSRF? CSRF son las siglas de "Cross-Site Request Forgery", o lo que es lo mismo, "Falsificación de Peticiones de Sitios Cruzados". Dicho ataque se produce cuando, creando un enlace a una web especialmente manipulado, podemos hacer que, si esa persona tiene una sesión iniciada en dicho sitio web, se produzca, de manera involuntaria, una acción determinada. Pongamos un ejemplo:
La página "banco.com" tiene un sistema para enviar dinero de un cliente a otro. En nuestro panel de control, tenemos un enlace para enviar dinero a Pepito, cuyo ID de usuario es "12345". En ese caso, el enlace que nos aparecería sería el siguiente:
www.banco.com/enviar_dinero.php?cantidad=200&destino=12345
[*] Cantida
😛200(€).
[*] Destino: 12345 (El usuario con ID 12345, en este caso, Pepito).
El origen del dinero (nosotros) es definido porque, previamente, habremos iniciado sesión en la página con nuestro usuario y contraseña. Bien...
¿Qué ocurriría si alguien manipulara ese enlace? Imaginaos a un atacante, con ID 54321. Dicho atacante se dedica a enviar correos electrónicos aleatoriamente, como podría ser:
Buenas, he visto esta foto tuya en esta página y la verdad es que me sorprende que pudieras hacer algo así... ¿Qué te ha pasado?
Si pasais el ratón por encima de "esta foto tuya", veréis que el enlace es el siguiente: www.banco.com/enviar_dinero.php?cantidad=1000&destino=54321
[*] Cantida
😛1000(€).
[*] Destino: 54321 (El usuario con ID 54321, en este caso, el atacante).
Si alguien que haya iniciado sesión en la página www.banco.com pulsa sobre dicho enlace, enviará 1000€ a la cuenta con ID 54321... Y el atacante podrá pagarse unas lujosas vacaciones a su costa. Y esto, señores, es un bonito ataque CSRF.
Ahora bien... ¿Cómo evitamos un ataque CSRF (de parte del servidor)?
Bien, para protegerse de el uso indiscriminado de estos enlaces, cuando se carga una página, se crea un identificador único para esa página llamado "token", que servirá para certificar que, efectivamente, hemos sido nosotros (y no otro) el que ha cargado dicha página y no se ha accedido externamente a través de un enlace malicioso. Dicho token varía de una petición a otra (cuando cambiamos de una página a otra, tenemos otro token diferente), y tiene un tiempo de caducidad. Cuando dicho tiempo de caducidad ocurre, aunque sigamos logueados en la web en cuestión, tendremos que volver a cargar la página para obtener otro token y que nuestras acciones sean válidas. Es por esto que si tratamos de ejecutar una acción que requiera un token válido, aparezca (aunque no sea cierto) el mensajito de CSRF Attack Detected. Esto implica enviar formularios (como crear entradas en el periódico, o leer los comentarios de los feeds).
Y finalmente... ¿Por qué aparece el mensaje de CSRF Attack Detected?
Bien, Apache (servidor HTTP que, supongo, será el que utilice este juego) tiene un plugin llamado "mod_security" que, entre otras cosas, tiene incorporado un sistema de protección contra ataques CSRF mediante el uso de csrf_token. Dicho plugin no está de ninguna manera creado ni soportado por los creadores de eRepublik, por lo que ellos no pueden hacer nada por que dicho mensaje desaparezca. De hecho, que aparezca ese mensaje es muestra de que, al menos, la seguridad se la toman en serio.
No es fallo de eRepublik, es el protocolo que se ha de seguir para garantizar la seguridad. Si te tiras dos horas en una misma página, no haces nada, y publicas tu tochopost sin hacer un CTRL+C al menos, te la juegas a que te salga el mensajito del CSRF Attack Detected.
Todo esto lo cuento desde el conocimiento que tengo, pues las páginas web son a lo que me dedico en la vida real.
Espero no haberos abrumado con mi artículo, cualquier duda, contestaré por comentarios (y algo más en profundidad, por MP).
¡Saludos locuelos!
Comments
¡Pole!
¡Genial artículo! Brillantemente explicado. Enhorabuena, sí señor.
¡Tramposa! ¿Te lo has leído al menos? Es educacional, instructivo, y muy práctico (al menos, si te dedicas al periodismo, aprenderás a hacer CTRL+C antes de publicar xD)
Ah, eso ya es otra cosa... :3
Sí lo había leído. Sólo puse eso para que no me quitasen la pole. Yo intuía algo así, pero claro, no la explicación. 😛
el siguiente mensaje que veamos será sen&todomijoldIDplayer😛latoBonte
Ñaca.
Confiesa, te lo has inventado todo pero he de admitir que te ha quedado como si supieras de que estás hablando xb
Un dia de estos escribiré yo un artículo sobre la cría y reproducción del berberecho salvaje en cautividad (o no).
Ahora en serio. Gracias por la explicación y por ilustrarnos a los que algo nos imaginábamos pero desconociamos en realidad la explicación correcta del hecho en cuestión.
Votado.
P.D.: Que cunda el ejemplo y alguien se dedique a hacer artículos que, como este, sin ser un peñazo, sean instructivos.
Jajajajaja, la verdad es que este artículo es una mezcla de "reflexión de retrete" y "confesión entre resacas".
Esperaré con ansia tu artículo sobre la cría y reproducción del berberecho salvaje en cautividad (o no).
Una pregunta... ¿Como va a ser salvaje si está en cautividad? ¿Está cautivo? ¿Lo rescataste de alta mar y ahora lo usas de conejillo de indias? 😕
Jrazias amor ❤
:
Más bien lo uso de "berberechillo de indias" xb
P.D.: Keep Calm, leete bien lo que pone en el paréntesis (o no)
El consumo de berberechos salvajes ha sido considerado peligroso por la hepatitis
consumir berberechos esta contraindicado con las madalenas, sisi.
Good
Y este, señores, es mi profe de programación particular dentro del juego 😁 Gran articulo crack o/
Gracias esporito :3
quien no se a cagado en todas las madres del CSRF Attack Detected cuando le damos al publicar o enviar y perdemos todo lo escrito durante media hora jjejej
Sospechaba algo así... jode... pero tras varios varapalos de tochos perdidos... aprendes a usar el Ctrl+C siempre que sea minimamente tocho. En mi caso, Ctrl+X para asegurarme que lo he cogido xDDD
Sudo de leer, votado indeed!
Mañana lo leo!
░░░░░░░░░░░░▄▄
░░░░░░░░░░░█░░█
░░░░░░░░░░░█░░█
░░░░░░░░░░█░░░█
░░░░░░░░░█░░░░█
███████▄▄█░░░░░██████▄
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█████░░░░░░░░░█
██████▀░░░░▀▀██████▀
Neveriado!!
Muy bien explicado, y al menos, al que se toman en serio nuestros queridos admins....
Como te pille Justrell verás, jejeje... V
╭╯╭╯╭╯
█▓▓▓▓▓█═╮
█▓▓▓▓▓█▏︱
█▓▓▓▓▓█═╯
◥█████◤
╭╯╭╯╭╯
█▓▓▓▓▓█═╮
█▓▓▓▓▓█▏︱
█▓▓▓▓▓█═╯
◥█████◤
[_]D IN GLORIA CAPULUS [_]D
La primera parte del artículo me ha puesto nervioso, la segunda me ha tranquilizado.
Votado.
Ok, les perdono la vida entonces.
Votado y suscrito
Esta explicación tendría que haber venido de los admin del juego, porque no me creo que no hayan recibido tickets quejándose del famoso CSRF attack.
Gran trabajo y esto tendría que estar en el TOP, cojones!
Siempre que escribía un articulo en la org de comu. salia el dichoso mensaje. La costumbre me hizo entrar, poner cualquier mierda, publicar, ver como salia el mensaje, desloguearme, volver a entrar y escribir ya el texto en condiciones teniendo la seguridad de que no saldría mas xDDD
Con los comentarios, es como la lotería. Nunca sabes cuando te va a tocar. (acabo de hacer copy&paste de esto por asi acaso)
[removed]
Me creo lo de los artículos, pero... ¿Por qué salta también el "CSRF attack detected" la mitad de las veces que intento comentar una noticia desde Chrome? Me ha saltado al poner:
"No sé si me falla la memoria, que puede ser, pero creo recordar haber recibido ese mensaje publicando comentarios sin enlace alguno."
En esta mismo noticia. Estoy comentado ahora desde Firefox para que me deje publicar.
A mi tambien me ha pasado comentando noticias. De todas maneras, fantástica y educativa explicación.
Si entendí bien, es por el hecho de comentar, no por postear links... Si el coemntario lo intentaste postear después de haber leído el artículo, en ese tiempo permaneciste inactivo en la página, lo cual hizo caducar tu token y no permitirte hacer cosas como postear un comentario xD
Por lo que entendí es cuestión del tiempo que pases inactivo, si estas mucho tiempo en la página sin hacer nada,deberás recargarla antes se comentar, publicar un artículo y cosas así...
Puede ser, acabo de probar abajo y ya sí que me deja comentar... Pero no sé, hay veces que he recargado la página y me seguía saliendo
Efectivamente es lo que menciona alex23sv como lo describo en el artículo: Al haber pasado demasiado tiempo, tu token caduca y tienes que volver a cargar la página, es problema del servidor, por lo que es independiente del navegador que uses 😉
Buen curro, sí señor.
Pero a mi los mensajes que me molestaban no eran estos, son los putos mensajes en blanco todo el rato en el feed de milicia... y no me digas que es para protegerte de escribir muy rápido y sin pensar eh!! xDD
[removed]
Muy bueno
Puedo resumir este artículo mucho más facil y sin ser tan técnico...
CSRF Attack Detected - ¿Qué es?
-La gran putada que te puede pasar al escribir artículos. FIN DE LA CITA.
xDD
Puedo resumir este artículo mucho más facil y sin ser tan técnico...
CSRF Attack Detected - ¿Qué es?
-La gran putada que te puede pasar al escribir artículos. FIN DE LA CITA.
xDD
Es culpa de eR cuando:
- eR Tiene funciones de escribir artículos y por tanto, puedes pasarte "jugando" horas en una página sin hacer nada. No contemplar esto es una cagada.
- Apache tiene esa función y no eR. Pues eR ha elegido el servidor equivocado para que cumpla con sus necesidades.
A ver, esto se añade a las cagadas de la publicidad de la V1, que tenía tantos agujeros de seguridad que tuvo que retirarse, o al artículo viral que impidió que se editaran los artículos como se debe allá en agosto de 2010; y provocó que desaparecieran los vídeos dentro de los artículos. En ese momento la solución fue ANULAR toda foto, permitiendo sólo letra y enlaces. Dejo el BOE en formato ochentero que me tocó editar:
http://www.erepublik.com/es/article/boletin-del-ministerio-de-comunicaci-n-d-a-993--1482884/1/20
El módulo periodístico (y el ya inexistente económico) están absolutamente descuidados. Esto no pasa en el módulo mata-mata. Una pena.
Y muy buen artículo. V+S
En parte es una pena, pero también, visto que es improbable que tenga alguna solución, lo que pretendo es enseñar el por qué ocurre para que los jugadores vean qué pueden hacer para que, despues de estar 3 horas editando un artículo, no lo pierdan por el mensajito.
Respecto al servidor equivocado, a mi no me parece tanto problema, yo considero que tener cierta implicación en la seguridad de un sistema en el que, en ocasiones, se puede jugar con dinero real, me parece una decisión acertada, y más en estos tiempos que se puede "regalar" oro a la gente a través de dinero real, hay que tener mucho cuidado con eso.
La verdad es que eRepublik se está convirtiendo, cada vez más, en un mata-mata de ratón de los chinos, pero ellos sabrán lo que hacen, cuando la gente empiece a irse (como ya ha pasado en eEspaña, de 10k jugadores a poco mas de 5k) se plantearán escucharnos. Hasta entonces... Keep calm and click 😉
P.d.: Jrazias por comentar 🙂.
Es un simulador social...asi que la sociedad siempre esta jodida.
Pues hasta ahora lo relacionaba con tener en el caso de comentar un artículo, la página del artículo mucho tiempo abierta. Y en el caso de escribir un artículo, si tengo mucho tiempo abierto la página de escribir artículos.
En fin, votado!
Botellado
he trabajado con tokens de seguridad, en paginas web en las que solo se puede acceder con certificados digitales, es decir, cosas que requieren 100 veces mas seguridad que este juego.
En esas webs es comprensible, en este juego, no. Realmente para lo que es este juego, el token de seguridad es un absurdo, con el hecho de que la sesión expire, deberia ser suficiente para cubrir seguridad. Mas aun cuando no hay enlace que te puedan pasar que te haga publicar articulos.
El problema es cuando accedemos a una página desde fuera (de ahí lo de Cross-Site o Sitios Cruzados), es que ahí no basta con que la sesión expire, porque si no ha expirado... La jodimos xD.
Tal vez para un juego un token sea una estupidez, pero recuerda que en este juego se utiliza dinero real... No es tan absurda la idea de dar un poco de seguridad al sitio 😉
Café para todos y voto para el aplicado Matajaro.
Muy buen artículo y bien explicado, gracias majete.
Aaaaaaaahhh!!!
Verga amigo, muchas gracias por la luces!..
La solución es Drive (hacerlo ahí y copiar)