[pyar] [django] "autodiscover" para views

Andres Riancho andres.riancho en gmail.com
Vie Nov 8 09:11:09 ART 2013


2013/11/7 Gonzalo Delgado <mail en gonzalodelgado.com.ar>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> El 07/11/13 18:01, Andres Riancho escribió:
>> Al intentar migrar los primeros archivos PHP note que era algo
>> "molesto" el hecho de que por cada php tenia que generar una view
>> (hasta aca todo bien) y despues tocar el archivo urls.py para
>> apuntar a esa view.
>>
>> Son algo asi como 200 archivos php, que me gustaria irlos revisando
>> y potencialmente reubicando; por lo que armar el urls.py a mano es
>> tedioso.
>
> ¿Los 200 archivos de PHP hacen cosas distintas?

Yep, cosas simples y pequeñas en cuanto a codigo (5 a 15 lineas) pero
cosas distintas al fin. Por ejemplo hay 15 ejemplos distintos de XSS,
10 de SQL injection, etc.

> No te olvides que las urls de Django las describís con expresiones
> regulares, si los nombres de los archivos php siguen algún patrón
> podrías agruparlos en unas pocas expresiones regulares (suponiendo que
> querés que la aplicación Django responda a las mismas urls).
>
> Y si los archivos PHP no hacen cosas muy distintas podés escribir
> vistas genéricas como clases e ir derivando en subclases según sea
> necesario.

Al final decidi hacer lo siguiente:
    * El el urls.py principal puse un * que lleva todos los requests a
una "router view" [0]
    * La router view al ser instanciada carga todas las views que
heredan de VulnerableTemplateView [1] de un directorio especifico
    * Las subclases de VulnerableTemplateView definen cual es su URL,
asi despues el router sabe para donde mandar el request

Se que no es lo mejor en cuanto a performance, pero realmente no
espero que esta aplicacion sea usada en produccion en ningun momento
(es una app de prueba con vulnerabilidades!).

[0] https://github.com/andresriancho/django-moth/blob/master/moth/views/router.py
[1] https://github.com/andresriancho/django-moth/blob/master/moth/views/vulnerable_template_view.py

> - --
> Gonzalo Delgado
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.15 (Darwin)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iF4EAREIAAYFAlJ8LkwACgkQzbfdFL5JoUlE+QD6ArlEVTzCcCjrdiCLaI1OAh05
> Ne1w79ct9gnqrdw6c6cA/3LC0m/BsarIc5woo9sH7bemxr73b7X8stSIINZJ6iKE
> =lcyA
> -----END PGP SIGNATURE-----
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar



-- 
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3


More information about the pyar mailing list