Python y la seguridad

El otro día hablábamos de Bibliotecas para evitar problemas en PHP. Ahora me doy cuenta de que llevo unos días guardando un enlace a Python Security, un proyecto de la OWASP donde se almacena información genérica (válida para cualquier lenguaje) y soluciones o código relevante para algunos de los temas. Se trata de un proyecto vivo, así que irá mejorando, seguramente.

Bibliotecas para evitar problemas en PHP

Ya hablamos en Dos grandes errores en las aplicaciones web y consejos para evitarlos del API que preparaba la gente de OWASP, ESAPI con el objetivo de simplificar las cuestiones relativas a la seguridad para desarrolladores en Java. También parece que se preocupan de otros lenguajes, como PHP, Python, Ruby …

Sin embargo en esta entrada me quería centrar en dos entradas veraniegas sobre el particular: Librería PHP para evitar SQL injection y XSS, donde se nos habla de Genius Open Source Libraries y Prevenir ataques XSS con PHP donde se comenta sobre el PHP Input Filter.

No las he visto en detalle pero es bueno que vayan surgiendo este tipo de iniciativas y que los programadores dispongan de estas herramientas para aligerar su trabajo.

Para aprender C

Durante mucho tiempo cuando alguien quería aprender C el libro que le recomendaban invariablemente era el The C Programming Language de Kernighan y Ritchie. No estoy seguro de que sea el más recomendable para una aprendiz (sobre todo si a la vez tiene que aprender a programar) pero me hizo gracia ver esta loa en Programming Books, part 4: The C Programming Language.

¿Cuál recomendaría yo? Recomenbada, más bien, porque hace tiempo que nadie me pregunta por un libro para aprender C: a mi me lo recomendó un compañero profe y era el que solía decir, C: A Software Engineering Approach, de Darnell y Margolis, sin quitarle el mérito al otro. Seguramente, cualquiera que programe en C habitualmente debería leerlo también.

Popularidad de los lenguajes de programación

A partir de diversas fuentes en Programming Language Popularity. En las búsquedas de Yahoo! el lenguaje más popular sería C++, seguido de C y Java. En las búsquedas de empleo de Craig List (a través del buscador Yahoo!) el más popular sería PHP, seguido de C++ y C. Según los datos de la librería Powell’s Books el triunfador sería Java, seguido de C++ y Visual Basic. Según Freshmeat (hacía un montón de tiempo que no veía referencias a este sitio) el primero sería C, seguido de Java y C++. Según Google Code el ganador es C, Java y C++. Para Del.icio.us el primero es JavaScript seguido de Java y Python. Finalmente, según Ohloh el primero es C, luego Java y luego C++.

En el resultado combinado (peso 1 para cada una de las estadísticas) el ganador sería Java, seguido de C y C++.

Diez lenguajes a los que habría que echar un vistazo

Mucho me temo que no seguiré el consejo pero en 10 programming languages worth checking out recomiendan algunos candidatos a la exploración, en caso de que tengamos esa disposición. Fundamentalmente hay lenguajes funcionales. Greg Wilson añade uno más en 11 Programming Languages Worth Checking Out.

Otra comparativa de lenguajes de programación

En The speed, size and dependability of programming languages (lamentablemente no recuerdo donde lo vi) utilizan los datos de The Computer Language Benchmarks Game y muestran una comparativa y una visualización de diferentes lenguajes con las pruebas que se realizan en esas pruebas. Miden la velocidad, pero también el tamaño del código, fundamentalmente.

El ganador es Clean (rápido y compacto) que es un lenguaje que no conocía.

El enlace lo vi en Lenguajes de programación: una comparativa (más) donde analiza un poco los resultados.

Asegurando PHP

PHP es un lenguaje muy popular y con un historial extenso en cuanto a problemas de seguridad. Recientemente descubrí la serie de conferencias Web 2.0 Security & Privacy y en la edición de 2007 SStanislav Malyshev da un repaso a las distintas aproximaciones seguidas a lo largo del tiempo en la mejora de los aspectos de seguridad: Securing PHP – Approaches to Web Application Security (pdf), con su balance de aspectos positivos y negativos en cada caso.