Un acortador de URL (URL shortening)

Un acortador de URL es un servicio que se encarga de reducir el tamaño de una URL haciéndola más pequeña para que sea más manejable y fácil de compartir o recordar. Algunos ejemplos de acortadores de url son:

  • Bit.ly
  • goo.gl (Google)
  • Ow.ly
  • TinyURL.com
  • itun.es (Apples)

Tecnica:

En el acortamiento de URL, donde cada URL larga está asociada a una clave única, que es la parte que sigue a “http:://nombrededominio/”. Por ejemplo: “http:://bit.ly/Hs6dsgb” tiene una clave de “Hs6dsgb”. No toda las redirecciones se tratan por igual; la instrucción de redirección enviada a un navegador puede contener en su encabezado el estado HTTP 301 (redirección permanente) 302 o 307 (redirección temporal).

Problemas de seguridad:

  • Detrás de una url acortada puede esconderse cualquier cosa (web maliciosas, exploits, malware, etc.) .
  • Permite ocultar código “incrustado” en la propia URL en forma de parámetros o sentencias complejas, como el potencial destino malicioso de la URL verdadera.

Algunas formas de visualizar la url real detras de la url acortada:

Complementos de Mozillla Firefox

Long URL Please 0.5.1: Reemplaza urls cortas con las originales, para que pueda ver los enlaces en reales.

Servicios Online

Unshorten.it: Permite ingresar el enlace acortado y obtener el verdadero enlace mostrado, además, una captura del sitio y un pequeño reporte sobre la reputación del mismo.

Otros servicios Online:

Script de Python

Obtener información de una url acortada por medio de un script de Python:

import urllib2

def main(pstr):
try:

response = urllib2.urlopen(pstr)
print ‘———————————————————–‘
print ‘Original Url:’, pstr
print ‘Final url after redirects  :’, response.geturl()
print ‘HTTP response code         :’, response.getcode()
print ‘———————————————————–‘
print ‘HTTP response headers:’
headers = response.info()
for obj in headers:
print obj+ “:” ,headers[obj]
print ‘———————————————————–‘

except HTTPError, e:
print ‘Error ‘ + e.code
except URLError, e:
print ‘Error ‘ + e.reason

if __name__ == ‘__main__’:
var = raw_input(‘write an url:’)
if var != ”:
main(var)
else:
print “Error, you don’t write an url”

Resultados de la ejecución de codigo: shorturl1Saludos, Comenta y Comparte.  

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s