Una pregunta, llene un formulario para mí madre de subsidios de gas y electricidad y cdo lo termino me pone !CSRF token mismatch. Que me dice que está protegido o no, por qué la página es la oficial
Hola Gabriela,me pasó lo mismo en la tercer página del formulario del subsidio 🙄, y no se q hacer p continuar 🤦🏼♀️ alguien que sepa porfa, muchas gracias
Hola. Lo más probable es que puedas solucionarlo solo actualizando la página. Estos tokens se generan por seguridad pero caducan cada cierto tiempo. Si los ves continuamente probablemente se trate de un error en la implementación del sitio.
Gran video, muy entendible tu explicacion ,muchas gracias por eso, tengo una pregunta, y no hay una forma de que el atacante pueda obtener ese token y asi usarlo, para su proposito?
Hola. No es posible ya que el token se genera para cada usuario. Por ejemplo, si entras al formulario, obtienes un token, pero no puedes usar ese token para otra persona, solo servirá para que tú puedas hacer peticiones. Gracias por comentar!
Hola. Excelente pregunta. JWT se usa para aplicaciones cliente que se comunican con una API (stateless). Por ejemplo, si tienes una SPA, usarás JWT y no CSRF. Pero si tienes una multi-page app, que hace peticiones directamente a tu backend (usando cookies y sesiones, sin consultar una API), es importante agregar un token CSRF.
Hola. Para el caso de JWT no es necesario usar tokens CSRF. Los tokens CSRF nos protegen de realizar peticiones sin darnos cuenta (porque la sesión vive y es usada por el navegador automáticamente). Más info: security.stackexchange.com/questions/170388/do-i-need-csrf-token-if-im-using-bearer-jwt
Y si el atacante primero hace un GET con AJAX, obtiene el formulario con el token y luego reenvia el formulario con el token y los datos de su cuneta bancaria enviando una peticion POST con AJAX a la runta /trasnfer?
Hola Angel. Excelente pregunta. Lo que comentas no sería posible ya que los navegadores implementan una política de CORS, es decir, no se permite hacer una petición ajax desde un dominio a otro distinto, por seguridad del usuario. Los ataques CSRF son posibles porque los enlaces hacen que el usuario sea quien ejecuta las acciones.
Y no puedo solucionar eso como atacante, con simplmente hacer una peticion a la URL que me da el token valido y luego capturar el trafico y luego despues solamente hacer la transferecia?
Hola. Es una buena pregunta. La respuesta es que no es posible, ya que el CSRF token se imprime de manera oculta en el formulario. Si agregas un link hacia la URL que da el token en realidad estás enviando al usuario a la página del formulario, que es muy distinto a enviar al usuario hacia una URL que ejecuta una acción. Con código en otras páginas no tienes acceso a copiar el CSRF token que se carga en la página que intentas vulnerar. Sin el CSRF token basta con poner un enlace que termina ejecutando algo a nombre del usuario, pero si se requiere de un token, eso ya no es posible. Si te creas una cuenta en la página para obtener un CSRF token, ese token sólo sería válido para tu sesión, no para otros usuarios.
@@programacionymas te agradezco mucho tu respuesta, pero aun me queda una duda, es decir si se imprime en el formulario de manera oculta, aun así para imprimirse en el formulario debió llegar desde el servidor cuando se hizo la petición a la página que contiene el formulario, entonces ahí se podría interseptar, y luego, al igual que los input del formulario que están visibles, los inputs ocultos se envían al final de cuentas como parámetros, entonces solo sería cosa de primero hacerle una petición a la página que tiene el formulario y luego capturar el toquen válido antes que se incruste, luego hacer una petición a la URL que hace digamos la transacción bancaria con el token correcto. Que opinas de eso, quizá no he comprendido bien tu respuesta, pero si pudieras hacerme el favor de ilustrarme con eso, te lo agradecería mucho. A demás creo que sería incluso seria instructivo para tus subs o quienes lean los comentarios, saludos.
@@CarlosYN Por ejemplo, si haces tú una petición Ajax para obtener el token, ese token pertenece a tu sesión, no a la del usuario, es decir es válido solo para ti. No puedes hacer una petición a nombre del usuario. La única forma sería llevarlo a la ruta que contiene el formulario. Pero si el usuario llega, verá el formulario de pago (o de la operación que quiere hacer), y él usará los parámetros que cree correspondiente. De hecho se sorprendería de haber llegado hasta allí (página A) desde otra página (página B, que es la que tú controlas). Desde tu página B no puedes usar JS para acceder al input oculto de la página A. Los navegadores no permiten eso por seguridad. ¿A esto te referías? Espero haber entendido bien tu pregunta y no respondido otra cosa.
@@programacionymas es que me refiero a hacer la peticion directamente a la pagina que te da el token y luego cachar la respuesta la cual contendra el token y con eso hacer la transferencia, pero haciendo todo esto en el navegador de la victima desde una pagina maliciosa, para que se entienda mejor programe una pagian sencilla e implemente un web token y puse una pagina atacante. La cual hace lo mencionado y logra realizar la tranzaccion. github.com/carlosyenh/csrf-token-expliot-example
una pregunta profesor es necesario tambien hacerlo haciendo peticiones con axios en vuejs es decir si estoy usando la ultima versión de laravel que es 5.6 y la ultima version de vuejs 2.5.17 debo hacerlo tambien ?
Hola. Si estás declarando las rutas en web.php es muy probable que Laravel te exija el token para las peticiones post. En ese caso sí es necesario incluirlo. Aunque generalmente se añade una sola vez y ya queda configurado para peticiones posteriores.
Tengo una aplicación que en la función setUser() Exige que sea una petición POST Exige que el usuario que ha enviado esa petición tenga el permiso de crear registro. El permiso viene desde la base de datos, como ves esta funcionalidad amigo
Hola. En Laravel las peticiones POST requieren de un token CSRF, para evitar los ataques que se mencionan en el video. Adicionalmente a ello puedes tener permisos como los que comentas.
@@programacionymas hola di he estado leyendo, ese toquen podria capturarlo en el archivo donde estoy recibiendo el post, asi no lo muestro en el formulario
Un CSRF token se imprime como un campo oculto y generalmente forma parte de un formulario. En cambio un JWT se obtiene luego de que un usuario inicia sesión y lo representa frente al servidor. Los token CSRF generalmente se usan con cookies o sesiones, pero los JWT son stateless. Aquí puedes ver info más detallada sobre JWT y su diferente con sesiones: programacionymas.com/blog/jwt-vs-cookies-y-sesiones Saludos!
Hola una pregunta, cuando intento entrar al Nightbot de Twitch o alguna vinculación de la plataforma me avisa "invalid CSFR token". Solo me lo permite en modo incógnito, ayuda
Es muy probable que sea un error de programación en la aplicación que estás intentando conectar. Prueba eliminando datos de navegación / caché. Si te funciona desde incógnito es muy probable que el error ya se haya corregido, pero haya quedado "cacheado" el problema que antes existía.
Hola. No, en ese caso lo que debes implementar es JWT o algún otro método de autenticación como OAuth. Y no es necesario lo de señor, no soy muy viejo jeje.
Programación y más jajaja es cierto estuve muy formal. gracias por tu respuesta. Entonces: yo tengo ya implementado el mecanismo de autenticación por JWT igualmente estoy protegido contra cross site forgery? pues el token está almacenado en el local storage del browser no podría otro sitio leer ese token y hacer La famosa transferencia millonaria??
Muy interesante la pregunta. Yo he usado JWT con una app android y guardaba el token en una variable de la misma app usando SharedPreferences. En el caso de una API protegida por JWT no se puede suplantar la identidad porque ya hay un token de por medio. Estuve leyendo ahora y por lo que veo, las variables que guardas en el local storage solo las puede usar la misma página que los guardó. Lo que sí puede ocurrir es una vulnerabilidad XSS (cross site scripting). Según entiendo esto ocurre cuando requieres algún archivo JS de un sitio externo. Como el código externo se ejecuta sobre tu página, entonces ellos son quienes podrían acceder al token y usarlo para algún propósito, enviando esta "lógica infame" en el JS que descargas y ejecutas. Pero creo es menos probable que ocurra. Es como decir, cuidado con las dependencias que tienes en tu proyecto. Mm más exactamente es como si bootstrap, jquery o una biblioteca que uses cambie su código para ejecutar algo sobre tu página accediendo al local storage. Aquí puedes leer un poco más: stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage#so-whats-the-difference Por cierto, usaste algún paquete para implemenetar jwt en laravel?
Estimado, usé éste: github.com/tymondesigns/jwt-auth En éste artículo se explica muy bien cómo usarlo: scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps o acá: www.toptal.com/web/cookie-free-authentication-with-json-web-tokens-an-example-in-laravel-and-angularjs
Un csrf token es importante por la manera en que funcionan las sesiones. En el caso de Vue, si usas autenticación basada en tokens, no es necesario un token csrf, ya que las peticiones a nombre del usuario sólo ocurren dentro de la aplicación, y no pueden iniciarse desde otras ventanas.
que tal hermano, subo instrumentales a beatstar.com y cuando termino de cargar mis pistas para subirlas me sale un carte de que el token CSRF es invalido, porque se da esto sabrias decirme por favor? esto empezo a pasar desde que pague mi primera cuota premium en esta pagina.
Hola. Un token csrf se genera de manera automática por un sitio web para aumentar la seguridad de las operaciones. Generalmente tienen un límite de caducidad. Cuando caducan es que aparece que el token es inválido. Deberías poder actualizar y así obtener un token csrf nuevo para que puedas seguir navegando con normalidad. Y si no te funciona deberías reportarlo a los administradores del sitio.
Hola. Puedes eliminar datos de navegación, cookies, sesiones, y en una ventana nueva del navegador iniciar sesión (sin tener otras páginas abiertas). Aunque, dependiendo de la tecnología que usa la pág de tu universidad, podría tratarse de una alarma en falso también. Si ves el mensaje continuamente, puedes informarlo. Saludos.
Hola. Imagino que te refieres a los helpers disponibles en Laravel. El primero imprime un input type hidden con el valor del token, y el 2do sólo imprime el valor del token en sí.
Hay algo que no entiendo aca, en teoria si puedes hacer CORS con ajax, podrias acceder al CSRF Token, por ende el CSRF Token solo sirve para cuando un sitio malicioso hace requests usando las tags html
tengo una duda por que esta expuesto el csrf, en el codigo considero que esto es una debilidad, amenos que este token, este cifrado si fuera el caso esta bien pero aun asi existe esta vunerabilidad, considero que blade deberia ocultarlo o conoces alguna forma para ocultarlo?
Hola. El token csrf se genera continuamente y es diferente para cada usuario, por lo que si alguien copia el valor de uno, no le serviría de mucho. La idea del token es asegurar que se esté navegando desde nuestro sitio, y no desde cualquier otro (para evitar acciones sobre nuestra app que provengan de un origen distinto).
Esto se soluciona con JWT? JSON WEB TOKEN? Ejemplo: Si hacemos una petición a mi APIrest sin el JWT la api no ejecuta la petición. esto soluciona el problema???
Hola. El CSRF Token es una solución a la vulnerabilidad, para cuando se usan sesiones. Para el caso de las APIs no existen sesiones ya que el protocolo HTTP es stateless. Aunque para las APIs no existe el problema mostrado en el video, un JWT es importante para la autenticación. Si quieres revisar más sobre el tema te recomiendo estos enlaces: - programacionymas.com/blog/cookies-y-sesiones - programacionymas.com/blog/jwt-vs-cookies-y-sesiones
Hola. Es buena idea. Aunque tendría que investigarlo un poco para ver cuál es la mejor forma de generar el token de forma general para todas las peticiones asociadas a rutas. De todas formas te recomiendo usar Laravel (te facilita mucho las cosas): series.programacionymas.com/aprende-laravel-desarrollando-un-sistema
Ayuda, yo no se mucho de esto, ¿Es un virus? porque intenté acceder a mi cuenta en un sitio y me detecto esto del ''Csrf'', yo ni se que es eso y por tanto que lo googleo no lo entiendo, intente verificar con el malwarebytes y resulta que ya no funciona, no me deja abrirlo en services.msc esta en detencion. Ayuda?
Hola. No es un virus. Es un mecanismo para añadir seguridad a los sitios web. Es importante que lo conozcan los desarrolladores web. En tu caso probablemente se trate de algo totalmente distinto.
¿Cuál es la pregunta? Si respondo recién ahora es porque UA-cam no me envía notificaciones de todos los comentarios, sólo de algunos. Entonces de vez en cuando reviso personalmente.
yo solo vine porque al entrar en una pagina me salio CSRF token Invalid y me asuste pense que me habian hakeado , pero al final me ayudo para mi estudio en mi escuela xd ps: muchas gracias por la info :3
@@programacionymas Crunchyroll aun que ya me dejo logearme solo cerré la ventana y entre otrvez y ya ,yo me habia asustado no sabía que era el token invalid pero ahora si se gracias a usted :3
5 años después Aún muy útil e importante este vídeo, muy clara la explicación. Mucha gracias.
Excelente! Gracias por el comentario.
Gracias por tu explicación, no ando tras laravel, más bien conociendo que es ese token.
Eso es bueno, porque el concepto aplica para aplicaciones web en general, independientemente de la tecnología backend. Gracias también por comentar!
Una pregunta, llene un formulario para mí madre de subsidios de gas y electricidad y cdo lo termino me pone !CSRF token mismatch. Que me dice que está protegido o no, por qué la página es la oficial
Hola Gabriela,me pasó lo mismo en la tercer página del formulario del subsidio 🙄, y no se q hacer p continuar 🤦🏼♀️ alguien que sepa porfa, muchas gracias
Hola. Pueden intentar actualizando la página e ingresar los datos esta vez más rápido, para que el token no expire.
Hola capo...una pregunta el CSRF token mismatch..así me sale que se ignifica..es en una página de ANSES..
Hola. Lo más probable es que puedas solucionarlo solo actualizando la página.
Estos tokens se generan por seguridad pero caducan cada cierto tiempo.
Si los ves continuamente probablemente se trate de un error en la implementación del sitio.
Muy buen video, explicas con mucha claridad en que consiste el CSRF Token.
Muchas gracias Luis por tu comentario! 🥷
muchisimas gracias, muy clara tu explicación
Genial. Gracias por el comentario!
muy claro mucha gracias.
Excelente explicación
Gracias por el comentario!
Gran video, muy entendible tu explicacion ,muchas gracias por eso, tengo una pregunta, y no hay una forma de que el atacante pueda obtener ese token y asi usarlo, para su proposito?
Hola. No es posible ya que el token se genera para cada usuario. Por ejemplo, si entras al formulario, obtienes un token, pero no puedes usar ese token para otra persona, solo servirá para que tú puedas hacer peticiones.
Gracias por comentar!
Entre CSRF y JWT cual es mejor o como podría elegir uno
Hola. Excelente pregunta.
JWT se usa para aplicaciones cliente que se comunican con una API (stateless). Por ejemplo, si tienes una SPA, usarás JWT y no CSRF.
Pero si tienes una multi-page app, que hace peticiones directamente a tu backend (usando cookies y sesiones, sin consultar una API), es importante agregar un token CSRF.
Muy buen video, muchas gracias x compartirlo
Gracias también por comentar!
Muy buena la explicación, muchas gracias por compartirlo. Saludos
Con gusto. Gracias también por comentar!
y si utilizo en ves de sesiones tokens del tipo jwt para controlar las sesiones? si cada petición tiene que ir acompañada por el jwt...
Hola. Para el caso de JWT no es necesario usar tokens CSRF.
Los tokens CSRF nos protegen de realizar peticiones sin darnos cuenta (porque la sesión vive y es usada por el navegador automáticamente).
Más info: security.stackexchange.com/questions/170388/do-i-need-csrf-token-if-im-using-bearer-jwt
@@programacionymas Excelente. Claro el jwt cumple en alguna manera la función del CSRF. Excelente video y gracias por tu respuesta.
Y si el atacante primero hace un GET con AJAX, obtiene el formulario con el token y luego reenvia el formulario con el token y los datos de su cuneta bancaria enviando una peticion POST con AJAX a la runta /trasnfer?
Hola Angel. Excelente pregunta.
Lo que comentas no sería posible ya que los navegadores implementan una política de CORS, es decir, no se permite hacer una petición ajax desde un dominio a otro distinto, por seguridad del usuario.
Los ataques CSRF son posibles porque los enlaces hacen que el usuario sea quien ejecuta las acciones.
Tienes un ejemplo de como implementarlo en java con spring 5
Hola. Puedes revisar esta parte de la documentación: docs.spring.io/spring-security/site/docs/5.0.x/reference/html/csrf.html
Excelente me quedo clarisimo, Muchisimas gracias!!!
Genial. Gracias por comentar.
Muchas gracias por tu aportación, muy claro!
Gracias por el comentario Julio. Saludos!
Y no puedo solucionar eso como atacante, con simplmente hacer una peticion a la URL que me da el token valido y luego capturar el trafico y luego despues solamente hacer la transferecia?
Hola. Es una buena pregunta. La respuesta es que no es posible, ya que el CSRF token se imprime de manera oculta en el formulario. Si agregas un link hacia la URL que da el token en realidad estás enviando al usuario a la página del formulario, que es muy distinto a enviar al usuario hacia una URL que ejecuta una acción.
Con código en otras páginas no tienes acceso a copiar el CSRF token que se carga en la página que intentas vulnerar. Sin el CSRF token basta con poner un enlace que termina ejecutando algo a nombre del usuario, pero si se requiere de un token, eso ya no es posible.
Si te creas una cuenta en la página para obtener un CSRF token, ese token sólo sería válido para tu sesión, no para otros usuarios.
@@programacionymas te agradezco mucho tu respuesta, pero aun me queda una duda, es decir si se imprime en el formulario de manera oculta, aun así para imprimirse en el formulario debió llegar desde el servidor cuando se hizo la petición a la página que contiene el formulario, entonces ahí se podría interseptar, y luego, al igual que los input del formulario que están visibles, los inputs ocultos se envían al final de cuentas como parámetros, entonces solo sería cosa de primero hacerle una petición a la página que tiene el formulario y luego capturar el toquen válido antes que se incruste, luego hacer una petición a la URL que hace digamos la transacción bancaria con el token correcto. Que opinas de eso, quizá no he comprendido bien tu respuesta, pero si pudieras hacerme el favor de ilustrarme con eso, te lo agradecería mucho.
A demás creo que sería incluso seria instructivo para tus subs o quienes lean los comentarios, saludos.
@@CarlosYN Por ejemplo, si haces tú una petición Ajax para obtener el token, ese token pertenece a tu sesión, no a la del usuario, es decir es válido solo para ti.
No puedes hacer una petición a nombre del usuario. La única forma sería llevarlo a la ruta que contiene el formulario. Pero si el usuario llega, verá el formulario de pago (o de la operación que quiere hacer), y él usará los parámetros que cree correspondiente. De hecho se sorprendería de haber llegado hasta allí (página A) desde otra página (página B, que es la que tú controlas).
Desde tu página B no puedes usar JS para acceder al input oculto de la página A. Los navegadores no permiten eso por seguridad.
¿A esto te referías? Espero haber entendido bien tu pregunta y no respondido otra cosa.
@@programacionymas es que me refiero a hacer la peticion directamente a la pagina que te da el token y luego cachar la respuesta la cual contendra el token y con eso hacer la transferencia, pero haciendo todo esto en el navegador de la victima desde una pagina maliciosa, para que se entienda mejor programe una pagian sencilla e implemente un web token y puse una pagina atacante. La cual hace lo mencionado y logra realizar la tranzaccion.
github.com/carlosyenh/csrf-token-expliot-example
una pregunta profesor es necesario tambien hacerlo haciendo peticiones con axios en vuejs es decir si estoy usando la ultima versión de laravel que es 5.6 y la ultima version de vuejs 2.5.17 debo hacerlo tambien ?
Hola. Si estás declarando las rutas en web.php es muy probable que Laravel te exija el token para las peticiones post.
En ese caso sí es necesario incluirlo. Aunque generalmente se añade una sola vez y ya queda configurado para peticiones posteriores.
Excelente aporte, muy bien explicado. Saludos Cordiales.
Gracias por el comentario.
Saludos!
Tengo una aplicación que en la función setUser()
Exige que sea una petición POST
Exige que el usuario que ha enviado esa petición tenga el permiso de crear registro.
El permiso viene desde la base de datos, como ves esta funcionalidad amigo
Hola. En Laravel las peticiones POST requieren de un token CSRF, para evitar los ataques que se mencionan en el video. Adicionalmente a ello puedes tener permisos como los que comentas.
@@programacionymas hola di he estado leyendo, ese toquen podria capturarlo en el archivo donde estoy recibiendo el post, asi no lo muestro en el formulario
Y se me olvido la contraceña y quiero recuperarla pero no me da por el token que deberia hacer
Si te refieres a un token que te envían por correo o por SMS, me temo que es muy distinto al CSRF token que se menciona en el video.
Saludos.
Hola amigo, buen video, una consulta, cual es la diferencia con el token usado por ejemplo en nodeJS con JWT por ejemplo?
La idea es la misma?
Un CSRF token se imprime como un campo oculto y generalmente forma parte de un formulario.
En cambio un JWT se obtiene luego de que un usuario inicia sesión y lo representa frente al servidor.
Los token CSRF generalmente se usan con cookies o sesiones, pero los JWT son stateless.
Aquí puedes ver info más detallada sobre JWT y su diferente con sesiones: programacionymas.com/blog/jwt-vs-cookies-y-sesiones
Saludos!
Hola una pregunta, cuando intento entrar al Nightbot de Twitch o alguna vinculación de la plataforma me avisa "invalid CSFR token". Solo me lo permite en modo incógnito, ayuda
Es muy probable que sea un error de programación en la aplicación que estás intentando conectar. Prueba eliminando datos de navegación / caché.
Si te funciona desde incógnito es muy probable que el error ya se haya corregido, pero haya quedado "cacheado" el problema que antes existía.
@@programacionymas Gracias, voy a probar. Antes borré las cookies y seguía igual, en breve te aviso
@@programacionymas Aún borrando caché, datos, y cookies sigue igual
le hago una pregunta señor si tengo una aplicación angular ajax hecha con rest API con Laravel de backend necesito igualmente estos token csrf?
Hola. No, en ese caso lo que debes implementar es JWT o algún otro método de autenticación como OAuth.
Y no es necesario lo de señor, no soy muy viejo jeje.
Programación y más jajaja es cierto estuve muy formal. gracias por tu respuesta.
Entonces: yo tengo ya implementado el mecanismo de autenticación por JWT igualmente estoy protegido contra cross site forgery? pues el token está almacenado en el local storage del browser no podría otro sitio leer ese token y hacer La famosa transferencia millonaria??
Muy interesante la pregunta. Yo he usado JWT con una app android y guardaba el token en una variable de la misma app usando SharedPreferences.
En el caso de una API protegida por JWT no se puede suplantar la identidad porque ya hay un token de por medio.
Estuve leyendo ahora y por lo que veo, las variables que guardas en el local storage solo las puede usar la misma página que los guardó. Lo que sí puede ocurrir es una vulnerabilidad XSS (cross site scripting). Según entiendo esto ocurre cuando requieres algún archivo JS de un sitio externo. Como el código externo se ejecuta sobre tu página, entonces ellos son quienes podrían acceder al token y usarlo para algún propósito, enviando esta "lógica infame" en el JS que descargas y ejecutas.
Pero creo es menos probable que ocurra. Es como decir, cuidado con las dependencias que tienes en tu proyecto. Mm más exactamente es como si bootstrap, jquery o una biblioteca que uses cambie su código para ejecutar algo sobre tu página accediendo al local storage.
Aquí puedes leer un poco más: stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage#so-whats-the-difference
Por cierto, usaste algún paquete para implemenetar jwt en laravel?
Estimado, usé éste: github.com/tymondesigns/jwt-auth
En éste artículo se explica muy bien cómo usarlo: scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps o acá: www.toptal.com/web/cookie-free-authentication-with-json-web-tokens-an-example-in-laravel-and-angularjs
Deberian seguir conversando, esta muy entretenido, je :)
Muchas gracias buena info :)
Genial. Gracias por el comentario.
como podría usarse en VUE
Un csrf token es importante por la manera en que funcionan las sesiones. En el caso de Vue, si usas autenticación basada en tokens, no es necesario un token csrf, ya que las peticiones a nombre del usuario sólo ocurren dentro de la aplicación, y no pueden iniciarse desde otras ventanas.
que tal hermano, subo instrumentales a beatstar.com y cuando termino de cargar mis pistas para subirlas me sale un carte de que el token CSRF es invalido, porque se da esto sabrias decirme por favor? esto empezo a pasar desde que pague mi primera cuota premium en esta pagina.
Hola. Un token csrf se genera de manera automática por un sitio web para aumentar la seguridad de las operaciones.
Generalmente tienen un límite de caducidad. Cuando caducan es que aparece que el token es inválido.
Deberías poder actualizar y así obtener un token csrf nuevo para que puedas seguir navegando con normalidad. Y si no te funciona deberías reportarlo a los administradores del sitio.
Iba iniciar sesion en la pagina de mi universidad y me salio este mesaje "CSRF Token under attack detected"
Deberia de precuparme?
Hola.
Puedes eliminar datos de navegación, cookies, sesiones, y en una ventana nueva del navegador iniciar sesión (sin tener otras páginas abiertas).
Aunque, dependiendo de la tecnología que usa la pág de tu universidad, podría tratarse de una alarma en falso también.
Si ves el mensaje continuamente, puedes informarlo.
Saludos.
eso quiere decir que si ese sistema lo usan tambin los profes, puedes ponerte las calificaciones que quieras solo con que visiten tu pagina maliciosa
Cual seria la diferencia ente csrf_field y el csrf_token
Hola. Imagino que te refieres a los helpers disponibles en Laravel. El primero imprime un input type hidden con el valor del token, y el 2do sólo imprime el valor del token en sí.
Genial, me quedo mas claro
Gracias por comentar. Qué bueno que te haya sido de ayuda.
Gracias amigo
Con gusto. Gracias por comentar.
Si me gusto, pero no sé falta algo más tecnico.
Hola Gabriel! De qué manera te gustaría profundizar más en el tema? 🤔
Hay algo que no entiendo aca, en teoria si puedes hacer CORS con ajax, podrias acceder al CSRF Token, por ende el CSRF Token solo sirve para cuando un sitio malicioso hace requests usando las tags html
Como bien dices, se suele imprimir en un input type hidden dentro de los form.
Excelente explicación, pero no se pq con el Token me aparece el error 419 page expired
Hola. Los token caducan cada cierto tiempo. Puedes modificar la duración desde config/session.php en la variable llamada 'lifetime'.
@@programacionymas Gracias, espero que si sea eso el problema.
tengo una duda por que esta expuesto el csrf, en el codigo considero que esto es una debilidad, amenos que este token, este cifrado si fuera el caso esta bien pero aun asi existe esta vunerabilidad, considero que blade deberia ocultarlo o conoces alguna forma para ocultarlo?
Hola. El token csrf se genera continuamente y es diferente para cada usuario, por lo que si alguien copia el valor de uno, no le serviría de mucho. La idea del token es asegurar que se esté navegando desde nuestro sitio, y no desde cualquier otro (para evitar acciones sobre nuestra app que provengan de un origen distinto).
Esto se soluciona con JWT? JSON WEB TOKEN?
Ejemplo:
Si hacemos una petición a mi APIrest sin el JWT la api no ejecuta la petición. esto soluciona el problema???
Hola. El CSRF Token es una solución a la vulnerabilidad, para cuando se usan sesiones.
Para el caso de las APIs no existen sesiones ya que el protocolo HTTP es stateless.
Aunque para las APIs no existe el problema mostrado en el video, un JWT es importante para la autenticación.
Si quieres revisar más sobre el tema te recomiendo estos enlaces:
- programacionymas.com/blog/cookies-y-sesiones
- programacionymas.com/blog/jwt-vs-cookies-y-sesiones
Hola, buen vídeo!
Podrías mostrar cómo implementarlo en php sin necesidad de un framework?
Muchas gracias
Hola. Es buena idea. Aunque tendría que investigarlo un poco para ver cuál es la mejor forma de generar el token de forma general para todas las peticiones asociadas a rutas.
De todas formas te recomiendo usar Laravel (te facilita mucho las cosas): series.programacionymas.com/aprende-laravel-desarrollando-un-sistema
es simple, encriptas el tiempo en md5 y guardas ese código en una sesión y lo imprimes en la vista.
excelente
A mi me dio un token en mi cuenta de spotyfi en el play4
Ayuda, yo no se mucho de esto, ¿Es un virus? porque intenté acceder a mi cuenta en un sitio y me detecto esto del ''Csrf'', yo ni se que es eso y por tanto que lo googleo no lo entiendo, intente verificar con el malwarebytes y resulta que ya no funciona, no me deja abrirlo en services.msc esta en detencion. Ayuda?
Hola. No es un virus. Es un mecanismo para añadir seguridad a los sitios web. Es importante que lo conozcan los desarrolladores web.
En tu caso probablemente se trate de algo totalmente distinto.
Una pregunta
¿Cuál es la pregunta?
Si respondo recién ahora es porque UA-cam no me envía notificaciones de todos los comentarios, sólo de algunos. Entonces de vez en cuando reviso personalmente.
yo solo vine porque al entrar en una pagina me salio CSRF token Invalid y me asuste pense que me habian hakeado , pero al final me ayudo para mi estudio en mi escuela xd ps: muchas gracias por la info :3
¿Qué página? Es probable que el token haya caducado en dicha página o no se haya configurado correctamente.
Saludos.
@@programacionymas Crunchyroll aun que ya me dejo logearme solo cerré la ventana y entre otrvez y ya ,yo me habia asustado no sabía que era el token invalid pero ahora si se gracias a usted :3
sin esa cosa no me dejaba mandar formularios post >:c
¿y ahora todo bien?
@@programacionymas sep
Me acabas de Aser sentir violado en cuanto a las seguridad de las páginas que he hecho, son una basura ya mismo trabajaré en eso
Hay muchos sitios vulnerables a esto. Ojalá puedas solucionarlo pronto.
Saludos.
o Genial
Gracias por el comentario.
Hoal wuenas
Hola "mister panda".
cuando venis xel formulario,y no entendes una mierda ja!
Cuál formulario 👀
CSRF Token está en desuso y fácil de hackear.
¿Por qué crees eso Gianmarco? Tal vez lo estás confundiendo con otro concepto.