Archive for 2018
MySQL big size
Es importante conocer el tamaño de las tablas, ya que después de un uso prolongado de una aplicación esta contenga datos que no son útiles y hacen que nuestros respaldos sean muy pesados.
Para ello podemos utilizar una query para conocer el tamaño de las tablas de una base de datos.
SELECT table_name AS "Tabla",
round(((data_length + index_length) / 1024 / 1024), 2) "Tamaño MB"
FROM information_schema.TABLES
WHERE table_schema = "my_database_name"
ORDER BY (data_length + index_length) DESC;
De esta forma podemos saber si el respaldo es muy pesado por la información que se encuentra en una tabla en específico.Web-Bot
Los robots web nos permiten ejecutar acciones como si se trataran de usuarios reales manipulando una página web común y corriente.
Algunas de las acciones que podemos realizar es la consulta y descarga de información de manera automática, posteo de contenido y manipulación de comentarios.
A continuación mostraremos un ejemplo de como configurar y lanzar nuestra primera web bot
Para realizarlo necesitamos:
- Sistema Operativo Host (Linux, Centos 7)
- Selenium
- Geckodriver
- Phantomjs
Instalando dependencias
Una vez instalado nuestro sistema operativo debemos instalar python en caso de que no venga instalado por default e instalar pip.
[root@localhost ~]# yum install python [root@localhost ~]# yum install python-pip [root@localhost ~]# pip install --upgrade pip
Instalar Selenium
Instalamos el manejador web y sus dependencias.[root@localhost ~]# pip install selenium
Descargamos el driver dependiendo si vamos a usar Firefox o Chrome. En este caso utilizaremos Firefox y la versión correspondiente a nuestro sistema operativode 32 o 64 bits.
https://github.com/mozilla/geckodriver/releases
Una vez descargado y extraido el contenido, debemos colocarlo en los binarios del sistema.
[root@localhost Descargas]# tar -xvf geckodriver-v0.20.1-linux64.tar.gz [root@localhost Descargas]# cp geckodriver /usr/local/bin/ [root@localhost Descargas]# cp geckodriver /usr/bin/
Actuliza firefox
Hasta aqúi sería todo, pero si tu navegador firefox es el que viene por defaul obtendrás errores como el siguiente.selenium.common.exceptions.WebDriverException: Message: connection refused
Para solucionarlo deberás contar con la versión de firefox más actualizada. descargálo de la fuente original.
https://www.mozilla.org/es-MX/firefox/new/
Una vez descargado, descompríme el paquete descargado en /usr/local/ y crea la liga al binario original.
[root@localhost Descargas]# cp firefox-59.0.3.tar.bz2 /usr/local/ [root@localhost Descargas]# cd /usr/local/ [root@localhost local]# tar -xvf firefox-59.0.3.tar.bz2 [root@localhost local]# ln -s /usr/local/firefox/firefox /usr/bin/firefox
Hasta aqui ya tenemos todo funcionando correctamente por lo que rest ahacer una prueba.
Mi primer web bot
Hagamos una prueba abriendo una página web e imprimiendo el código fuente.#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox() driver.get("http://www.google.mx")
print driver.page_source.encode("utf-8")
El resultado debe ser similar al siguiente
Como podemos ver, abre una ventana de firefox nueva, con la url que solicitamos y en la consola se muestra el código fuente de la misma.
Ahora digamos que queremos hacer lo mismo pero no contamos con interfáz gráfica en nuestro sistema operativo, ¿cómo puedo hacerlo posible?.
Navegador web desde consola
Podemos realizar lo mismo que en firefox, utilizando un navegador diferente, que soporta javascipt desde consola.
http://phantomjs.org/
Para ello descargamos el paquete, instalamos sus dependencias y lo colocamos en los binarios.
[root@localhost Descargas]# yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++ [root@localhost Descargas]# tar -xvf phantomjs-2.1.1-linux-x86_64.tar.bz2 [root@localhost Descargas]# cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/ [root@localhost Descargas]# cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/
Si todo funciona ok, ahora modificamos el archivo python agregando este driver web.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.PhantomJS()
#driver = webdriver.Firefox()
driver.get("http://www.google.mx")
print driver.page_source.encode("utf-8")
Obtendremos un resultado identico al de firefox con la diferencia de que no lanzara ninguna ventana y obtendremos el código fuente.
Conclusiones
Al utilizar los robots web podemos realizar muchas más cosas de manera automática que impliquen realizar alguna acción en una página de internet sin tener interacción humana.
Esto támbíen es una herramienta clave para todo aquel que desee concvertirse en un hacker ya sea para realizar pruebas de sistemas y estabilidad, así como para realizar ataques.
Un ejemplo serían los retos que aparecen en páginas de WarGames de seguridad informática como la siguiente.
https://www.hackthissite.org/
En el reto debes contestar antes de 15 segundos, decodificando una imagen de morse a caracteres.




