Inicio > PHP > Cross site request forgery

CROSS SITE REQUEST FORGERY

04/02/2016PHP

 

El Cross Site Request Forgery también llamado CSRF se basan en explotar la confianza que los sitios web tienen con sus usuarios. No como en los ataques Cross Site Scripting.
este tipo de ataque consiste en que estando autenticado en una web alguien nos puede mandar un enlace de ese mismo sitio y aprovechando que hay una sesión iniciada modificar datos del usuario.
Para asegurarse que una acción está realmente siendo llevada a cabo por el usuario en lugar de un tercero, hay que asociarlo con algún tipo de identificador único que puede ser verificado después, llamado token que se guardaría en sesión y en cada operación importante, hay que recibir dicho token y comprobarlo con el token que se ha guardado en sesión. Lo más seguro es envir dicho token en un hidden y generar un token en cada inicio de sesión.
Las mejores forma de generar un token son:

  • $_SESSION['token'] = md5(uniqid(rand(), true));
  • $_SESSION['token'] = base64_encode( openssl_random_pseudo_bytes(32));
Espero que éste post ayude a tener sitios más seguros.