XSRF Django

En la web uno se debe cuidar de tres cosas (y muchas otras, pero de las principales y más comunes para mí) son: inyecciones SQL, XSS y XSRF.

La primera como dice el nombre es simplemente a través de llamadas HTTP ingresar código de SQL (esto puede aplicar a otro tipo de bases de datos No-SQL). La forma más común es a la hora de un formulario por el cual se pasan datos bien sea por POST o GET, colocar valores estílo ‘; comando sql;  por medio del cual se pueden robar valores, dañar la base datos, etc.

Luego tenemos los XSS, siglas de cross-site scripting, lo cual es ingresar código en la página que se ataca. Ejemplo un párametro que se pasa por GET y que se imprime en la página. Con poner en ese parámetro algo estilo < iframe src = “http://paginamaliciosa” > </ iframe >  se logra que otras personas vean lo que uno desee y se puede robar información u otras cosas.

Finalmente tenemos el XSRF, siglas de cross-site request forergy. Éste ataque es más complejo, pero puede hacer mucho daño. Consiste en hacer que un usuario autentificado en una página haga cosas que él no autorizo. Un ejemplo sería el siguiente:

  • Un usuario anda autentificado en X página, la cual hace el cambio de contraseña por POST.
  • Una persona maliciosa simplemente debe recrear ese request de POST y hacer que el usuario lo haga sin darse cuenta.

Yo ya en un post pasado publique un link (http://google-gruyere.appspot.com/) que encontré muy bueno que habla de seguridad de páginas web y que explican de estos ataques y como defenderse.

Hable de todo ésto ya que me topé con lo siguiente:

https://docs.djangoproject.com/en/dev/ref/contrib/csrf/

Cada día me sorprendo más con lo excelente que es este framework, al igual que Python.

De un modo bastante simple previsto por Django se es posible defenderse de éste último tipo de ataque que comente. No soy un experto de en programación web, nunca me ha gustado, pero me pregunto si muchos de los otros frameworks tienen está capacidad.

Fuera del tema, ya empezó el curso de seguridad ofrecido por la universidad de Standford, espero poder dedicarle, ya vi por encima el material que colocaron y se ve full interesante, espero tener el tiempo y las ganas de leerlo, ya veremos!

Advertisements

Cosas interesantes que he aprendido

Éstos últimos días en el trabajo como tal no he averiguado muchas cosas nuevas, pero quisiera mencionar algunas cosas interesantes:

  • Leí como funcionaba el protocolo OAUTH, el cual es usado por Facebook, Twitter, Google, etc. que consiste en la autentifícación de usuario fuera del proveedor de un servicio web para un tercero(consumidor). El ejemplo más común es el poder autentificarte/registarte en alguna página mediante tu cuenta de FB. Super interesante lo que leí y conocer en cierto modo su funcionamiento general ya que la forma en que es aplicado varía de cierta forma entre quienes lo ofrecen. Facebook da un uso bastante sencillo.
  • Éste mismo día mi jefe encontró un artículo sumamente interesante de como hacer consultas eficientes cuando se necesita tomar elementos de una tabla de forma aleatoria. El link es el siguiente: http://blog.rhodiumtoad.org.uk/2009/03/08/selecting-random-rows-from-a-table/
  • Hace un rato que conseguí este excelente artículo: http://blog.zx2c4.com/749. De verdad que impresionante lo que el conocimiento y curiosidad pueden lograr.
  • Tuve una gran noticia: es mu factible que haga un publicación de ciertas cosas hechas en mi tesis. Hare un artículo con mi compañero de tesis y tutora usando el algoritmo genético y abaje para Data Clustering de datos numéricos. Veamos que tal sale eso 🙂
  • Y bueno siguiendo a las personas de Anonymous por twitter he visto como tumban páginas web usando XSRF y SQL Injections. Eso me acordó del siguiente artículo que hace un rato conseguí: http://google-gruyere.appspot.com/
  • Me sucribí al curso de seguridad y machine learning que ofrecerá Standord