5 años después Aún muy útil e importante este vídeo, muy clara la explicación. Mucha gracias.
@programacionymas3 жыл бұрын
Excelente! Gracias por el comentario.
@231404022 жыл бұрын
Gracias por tu explicación, no ando tras laravel, más bien conociendo que es ese token.
@programacionymas2 жыл бұрын
Eso es bueno, porque el concepto aplica para aplicaciones web en general, independientemente de la tecnología backend. Gracias también por comentar!
@Wololeitor4 жыл бұрын
muchisimas gracias, muy clara tu explicación
@programacionymas4 жыл бұрын
Genial. Gracias por el comentario!
@LValencia592 жыл бұрын
Muy buen video, explicas con mucha claridad en que consiste el CSRF Token.
@programacionymas2 жыл бұрын
Muchas gracias Luis por tu comentario! 🥷
@wilwerrodriguez17877 жыл бұрын
muy claro mucha gracias.
@jesussvzful3 жыл бұрын
Excelente explicación
@programacionymas3 жыл бұрын
Gracias por el comentario!
@jmaurich4 жыл бұрын
Muy buena la explicación, muchas gracias por compartirlo. Saludos
@programacionymas4 жыл бұрын
Con gusto. Gracias también por comentar!
@cyb3rm4n14c4 жыл бұрын
Muy buen video, muchas gracias x compartirlo
@programacionymas4 жыл бұрын
Gracias también por comentar!
@paolac20705 жыл бұрын
Excelente me quedo clarisimo, Muchisimas gracias!!!
@programacionymas5 жыл бұрын
Genial. Gracias por comentar.
@MrElectrofacil6 жыл бұрын
Excelente aporte, muy bien explicado. Saludos Cordiales.
@programacionymas6 жыл бұрын
Gracias por el comentario. Saludos!
@jperezo6 жыл бұрын
Muchas gracias por tu aportación, muy claro!
@programacionymas6 жыл бұрын
Gracias por el comentario Julio. Saludos!
@roldanjimcollado9079 Жыл бұрын
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?
@programacionymas Жыл бұрын
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!
@javyy8a4 жыл бұрын
Muchas gracias buena info :)
@programacionymas4 жыл бұрын
Genial. Gracias por el comentario.
@Tiaagardoo928202 жыл бұрын
Hola capo...una pregunta el CSRF token mismatch..así me sale que se ignifica..es en una página de ANSES..
@programacionymas2 жыл бұрын
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.
@daioncode8622 жыл бұрын
Entre CSRF y JWT cual es mejor o como podría elegir uno
@programacionymas2 жыл бұрын
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.
@gracielafondevila32512 жыл бұрын
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
@gladysbustos42 жыл бұрын
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
@programacionymas2 жыл бұрын
Hola. Pueden intentar actualizando la página e ingresar los datos esta vez más rápido, para que el token no expire.
@AngelGonzalez-kl8oi2 жыл бұрын
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?
@programacionymas2 жыл бұрын
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.
@JuanChehin3 жыл бұрын
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?
@programacionymas3 жыл бұрын
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!
@natan90196 жыл бұрын
Genial, me quedo mas claro
@programacionymas6 жыл бұрын
Gracias por comentar. Qué bueno que te haya sido de ayuda.
6 жыл бұрын
Gracias amigo
@programacionymas6 жыл бұрын
Con gusto. Gracias por comentar.
@colommbiano6 жыл бұрын
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 ?
@programacionymas6 жыл бұрын
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.
@alguienes75615 жыл бұрын
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...
@programacionymas5 жыл бұрын
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
@alguienes75615 жыл бұрын
@@programacionymas Excelente. Claro el jwt cumple en alguna manera la función del CSRF. Excelente video y gracias por tu respuesta.
@daioncode8622 жыл бұрын
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
@programacionymas2 жыл бұрын
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.
@daioncode8622 жыл бұрын
@@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
@xenizs91123 жыл бұрын
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
@programacionymas3 жыл бұрын
Como bien dices, se suele imprimir en un input type hidden dentro de los form.
@Linkrudo5 жыл бұрын
Iba iniciar sesion en la pagina de mi universidad y me salio este mesaje "CSRF Token under attack detected" Deberia de precuparme?
@programacionymas5 жыл бұрын
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.
@CarlosYN4 жыл бұрын
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
@CarlosYN4 жыл бұрын
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?
@programacionymas4 жыл бұрын
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.
@CarlosYN4 жыл бұрын
@@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.
@programacionymas4 жыл бұрын
@@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.
@CarlosYN4 жыл бұрын
@@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
@joseab19487 жыл бұрын
excelente
@mnofresno7 жыл бұрын
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?
@programacionymas7 жыл бұрын
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.
@mnofresno7 жыл бұрын
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??
@programacionymas7 жыл бұрын
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?
@mnofresno7 жыл бұрын
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
@sagitario26XD6 жыл бұрын
Deberian seguir conversando, esta muy entretenido, je :)
@bombiestar54814 жыл бұрын
Y se me olvido la contraceña y quiero recuperarla pero no me da por el token que deberia hacer
@programacionymas4 жыл бұрын
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.
@Gohan244 жыл бұрын
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
@programacionymas4 жыл бұрын
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.
@Gohan244 жыл бұрын
@@programacionymas Gracias, voy a probar. Antes borré las cookies y seguía igual, en breve te aviso
@Gohan244 жыл бұрын
@@programacionymas Aún borrando caché, datos, y cookies sigue igual
@Mendez_847 жыл бұрын
Hola, buen vídeo! Podrías mostrar cómo implementarlo en php sin necesidad de un framework? Muchas gracias
@programacionymas7 жыл бұрын
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
@GianmarcoCV6 жыл бұрын
es simple, encriptas el tiempo en md5 y guardas ese código en una sesión y lo imprimes en la vista.
@ivanalexander7262 жыл бұрын
Tienes un ejemplo de como implementarlo en java con spring 5
@programacionymas2 жыл бұрын
Hola. Puedes revisar esta parte de la documentación: docs.spring.io/spring-security/site/docs/5.0.x/reference/html/csrf.html
@DarkShyaoran4 жыл бұрын
Excelente explicación, pero no se pq con el Token me aparece el error 419 page expired
@programacionymas4 жыл бұрын
Hola. Los token caducan cada cierto tiempo. Puedes modificar la duración desde config/session.php en la variable llamada 'lifetime'.
@DarkShyaoran4 жыл бұрын
@@programacionymas Gracias, espero que si sea eso el problema.
@willydavid_4 жыл бұрын
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???
@programacionymas4 жыл бұрын
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
@joseandresherreraalcantar6924 жыл бұрын
Cual seria la diferencia ente csrf_field y el csrf_token
@programacionymas4 жыл бұрын
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í.
@shinnize5 жыл бұрын
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?
@programacionymas5 жыл бұрын
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).
@jairitamarorozcofranco15474 жыл бұрын
como podría usarse en VUE
@programacionymas4 жыл бұрын
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.
@Undead342 жыл бұрын
Si me gusto, pero no sé falta algo más tecnico.
@programacionymas2 жыл бұрын
Hola Gabriel! De qué manera te gustaría profundizar más en el tema? 🤔
@gregorio.productor4 жыл бұрын
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.
@programacionymas4 жыл бұрын
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.
@julioe.rodriguezm.7105 жыл бұрын
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
@programacionymas5 жыл бұрын
¿Qué página? Es probable que el token haya caducado en dicha página o no se haya configurado correctamente. Saludos.
@julioe.rodriguezm.7105 жыл бұрын
@@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
@LuisMartinez-cs8fm4 жыл бұрын
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
@programacionymas4 жыл бұрын
Hay muchos sitios vulnerables a esto. Ojalá puedas solucionarlo pronto. Saludos.
@bombiestar54814 жыл бұрын
A mi me dio un token en mi cuenta de spotyfi en el play4
@elchanoo6 жыл бұрын
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?
@programacionymas6 жыл бұрын
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.
@JoseGuz5 жыл бұрын
Una pregunta
@programacionymas5 жыл бұрын
¿Cuál es la pregunta? Si respondo recién ahora es porque KZbin no me envía notificaciones de todos los comentarios, sólo de algunos. Entonces de vez en cuando reviso personalmente.
@freddy92924 жыл бұрын
sin esa cosa no me dejaba mandar formularios post >:c
@programacionymas4 жыл бұрын
¿y ahora todo bien?
@freddy92924 жыл бұрын
@@programacionymas sep
@luisadolfolimachiarmijo36596 жыл бұрын
o Genial
@programacionymas6 жыл бұрын
Gracias por el comentario.
@JoseGuz5 жыл бұрын
Hoal wuenas
@programacionymas5 жыл бұрын
Hola "mister panda".
@danielsmith95222 жыл бұрын
cuando venis xel formulario,y no entendes una mierda ja!
@programacionymas2 жыл бұрын
Cuál formulario 👀
@GianmarcoCV6 жыл бұрын
CSRF Token está en desuso y fácil de hackear.
@programacionymas6 жыл бұрын
¿Por qué crees eso Gianmarco? Tal vez lo estás confundiendo con otro concepto.
@kitty65 жыл бұрын
Explicación excelente, seria, sin andar con rodeos, buen tono de voz, felicitaciones