Scrapping con Google Sheets. Obteniendo información de la web

 Araña Entre las múltiples utilidades de GoogleSheets que uno no esperaba encontrar está la del scraping (¿’arañado’?; se trata de descargarse una página web y extraer la información que nos interese de allí. Hay muchas herramientas pero para algunas cosas pueden bastarnos lo consejos que aparecen en Web Scraping with Google Sheets: The Definitive Guide.

Esencialmente nos da pistas para manejar tablas, listas, información en XML y alguna cosilla más. Todo ello sin demasiado esfuerzo.

¿Puedo tener problemas de seguridad utilizando Python? Puedo tener problemas de seguridad utilizando Python

Serpiente No se suele hablar mucho de la seguridad en los lenguajes que se consideran más o menos seguros. Nada hay como el C y otros para meter la pata y tener problemas; pero eso no impide que tengamos que tener en cuenta algunas cosas y de eso hablaban en 10 common security gotchas in Python and how to avoid them.

Empieza hablando de que cuando aprendemos a programar aprendemos cómo se supone que debe usarse un lenguaje o lo que sea; sin embargo, cuando hablamos de seguridad tenemos que cambiar a pensar en cómo podría ser usado para conseguir algo malo.

… you learn how it supposed to be used. When thinking about security, you need to think about how it can be misused

Y, claro, aunque hablemos de lenguajes seguros, algunas cosas malas siguen siendo posibles. La lista:

  • Inyección de entrada
  • Problemas al analizar XML
  • Instrucciones ‘assert’
  • Ataques basados en el tiempo
  • Paquetes maliciosos o el lugar desde donde se importan
  • Ficheros temporales
  • Problemas al cargar ficheros YAML
  • Datos serializado
  • Problemas del entorno Python por no estar actualizado
  • Problemas por no tener actualizadas las dependencias

Como puede verse, algunos son bastante específicos (aunque casi todos aplicables a diversos lenguajes) pero otros son completamente genéricos.

En todo caso, un buen repaso generalista.

Sobre aprender a programar y la frase 'independiente del lenguaje'

Sobre programación En We Should Stop Saying ‘Language Independent.’ We Don’t Know How To Do That una nota interesante sobre la famosa frase ‘independiente del lenguaje’ y cómo el lenguaje en el que aprendemos nos influye.

Habla de la investigación de Allison Elliott Tew y Miranda Parker sobre estudiantes de programación con diferentes lenguajes y cómo los errores que se comenten en unos se parecen más a algunos otros que a la generalidad:

Notice that the most common wrong answer is exactly the same. The 2nd most common wrong answer in Java is idiosyncratic (which is interesting), but the 2nd most common wrong answer for both MATLAB and Python is the 3rd most common wrong answer for Java. The 4th most common wrong answer for Java is the same as the 5th most common wrong answer for Python. We didn’t see that wrong answer in MATLAB, but surprisingly, there were only 4 wrong answers for MATLAB.

Lo que dice el autor es que tenemos lenguajes diferentes porque creemos que eso tiene algún valor (marca alguna diferencia).

We have different languages because we think that those differences make a difference. For an assessment to be language independent, it would have to be measuring something deeper than those differences.

Interesante.

Almacenamiento de información sobre nuestra navegación: cookies y LocalStorage

Galletas Un artículo técnico pero no demasiado sobre cómo almacenan información los navegadores: Cookies vs. LocalStorage: What’s the difference?.

Todos hemos oido hablar de las ‘cookies’ (de manera irremediable por la absurda regulación sobre los avisos y esas cosas que tanto dolor causan en nuestra navegación diaria). No es tan habitual haber escuchado hablar de ‘LocalStorage’, otro sistema de almacenamiento de información (siempre local, otra cosa es lo que se haga con esa información después, claro).

Sobre las cookies, lo de siempre: un poco de información que se utiliza principalmente para hacer seguimiento de nuestra navegación mediante algún tipo de identificador que se nos asigna.

So, what are cookies? According to whatarecookies.com, they are small text files that are placed on a user’s computer by a website.

Que las hay persistentes y de sesión, las primeras tienen fecha de caducidad y las segundas expiran en cuanto cerramos la ventana del navegador (o la pestaña, o lo que sea). Las persistentes quedan almacenadas en nuestro sistema y son las que permiten que no tengamos que identificarnos una y otra vez en los sitios que usamos habitualmente.

Sobre LocalStorage, se trata de un mecanismo introducido con HTML5, que tiene la ventaja de que no es necesario que viaje de un sitio para otro en nuestra navegación en cada enlace que pinchamos (está orientado a almacenar información localmente).

This is because data is stored on the user’s local disk and is not destroyed or cleared by the loss of an internet connection.

Para repasar.

Seguridad en entornos corporativos con sistemas tradicionales

Ordenador grandote No es habitual que tengamos acceso a un ‘mainframe’, uno de esos sistemas grandes capaces de procesar muchísimas transacciones, que en muchos casos han sido sustituidos por infraestructuras más ligeras y a las que sí que tenemos acceso con más facilidad.

En Top Five Security Focus Areas for Mainframes hablaban de estos equipos y resumen los problemas fundamentales de seguridad en cinco.

  • Políticas de contraseñas.
  • Datos olvidados
  • Usuarios con demasiados privilegios
  • Protocolos no cifrados
  • Aplicaciones inseguras

Nada que no podamos esperar encontrar en un sistema basado en otro tipo de comopnentes, pero en estos sistemas parece que no es raro encontrar los problemas por su dificultad de gestión, el tipo de operaciones que se realizan con ellos y laforma en que tradicionalmente se han considerado dentro de las empresas.

Esto es, habitualmente estaban aislados y protegidos físicamente.

First, mainframes were historically physically isolated in what was considered a “secured” space with layers of security controls, so companies assumed they would not be tampered with.

Típicamente están dedicados a tareas de producción y es un problema hacer otras cosas con ellos.

Second, mainframes are typically excluded from security testing because they almost always run production operations.

No hay demasiados expertos en la seguridad en este contexto.

Finally, there is limited mainframe testing expertise