paranoia.json

4 01 2010

Luego de unos meses de usar firefox(confieso haber usado intenet explorer largo tiempo) acumule marcadores que nunca quisiera extraviar, por lo que se me ocurrió guardarlos (marcadores->organizar marcadores->importar y respaldar->copiar…) para subirlos al hosting gratuito que uso(mi@, no me va tan mal)…archivos .json de unos 400+KB..Todo bien hasta ese punto.

Pero luego recuerdo que los .json estaban a la vista de cualquiera con google y algo de tiempo y me entra esa paranoia que hace tomar medidas estúpidas: crear un script para pasar mis .json a .bmarks
bmarks.php:

<?php
if(!isset($_GET['file']) || $_GET['file']==''){
	echo '?file empty.';exit;
} else if(!file_exists($_GET['file'])){
	echo 'Archivo no existe.';exit;
}
$bmarks = $_GET['file'];
$key = 'TU_LLAVE_AQUI';//usar una llave de algun servicio: facebook, flickr, wordpress...
if(isset($_GET['k']) || $_GET['k']!=''){
	if($_GET['k'] == 'x'){
		unlink($bmarks);exit;
	}
	if($_GET['k'] == 'd'){
		$size = filesize($bmarks);
 		header("Content-Type: application/force-download");
    		header("Content-Disposition: attachment; filename=$bmarks");
   		header("Content-Transfer-Encoding: binary");
  		header("Content-Length: " . $size);
 		readfile($bmarks);
		exit;
	}
	echo 'Accion invalida..';exit;
}

//lo de $salame fue por que tenia hambre
function encodebmark($txt){
	$salame = strtr(base64_encode(addslashes(gzcompress(serialize($txt),9))), '+/=', '-_,');
	$salame = base64_encode($key) . $salame;
	$salame .= '---.-.' . md5($key.$salame);
	$salame = gzcompress($salame);
	return $salame;
}
function decodebmark($txt){
	$salame = gzuncompress($txt);
		$bmarks_and_hash = explode('---.-.', $salame, 2);
		if(md5($key.$bmarks_and_hash[0]) != $bmarks_and_hash[1]){echo 'Hash invalido.';exit;}
	$salame =  str_replace(base64_encode($key) , '', $bmarks_and_hash[0]);
	$salame = unserialize(gzuncompress(stripslashes(base64_decode(strtr($salame, '-_,', '+/=')))));
	return $salame;
}
if(is_writable($bmarks)){
	$txt_raw = file_get_contents($bmarks);
	$file_name_Ext = explode('.', $bmarks);
	$bmarks_noExt = $file_name_Ext[0];//siempre la parte 0
	$bmarks_Ext = strtolower(end($file_name_Ext));//simpre la ultima parte
	if($bmarks_Ext == 'json'){
		$txt_parsed = encodebmark($txt_raw);
		$bmarks_new = $bmarks_noExt . ".bmarks";
		
	}
	if($bmarks_Ext == 'bmarks'){
		$txt_parsed = decodebmark($txt_raw);
		$bmarks_new = $bmarks_noExt . ".json";
		
	}
	file_put_contents($bmarks_new, $txt_parsed);
	unlink($bmarks);
	echo '[<a href="' . $_SERVER['PHP_SELF'] .'?file=' . $bmarks_new  . '&k=d">Descargar</a>]';
	echo '[<a href="' . $_SERVER['PHP_SELF'] .'?file=' . $bmarks_new  . '&k=x">X</a>]';
}
else{
	echo 'Archivo invalido.';
}
?>

Uso:

  • cambiar TU_LLAVE_AQUI por alguna llave de algun servicio: facebook, flickr, wordpress…
  • ingresar a bmarks.php?file=filename.json para obtener filename.bmarks
  • ingresar a bmarks.php?file=filename.bmarks para obtener filename.json

Ventajas:

  • Ahorro de espacio(1/3 de los .json)
  • Algo de protección

Desventajas:

  • si pierdo la llave quedan inutilizados
  • ganas incontenibles de comer salame
Anuncios

Acciones

Information

One response

2 02 2010
libdbus-glib-1.so .2 y .3 « Incendia la ciudad

[…] Ahora falta libdbus-1.so.3. nuevamente al repositorio de libs ese. Descargo la que falta y la coloco donde debería estar, resultado: FUNCIONA!!! Ahora solo debo pasar la ultima versión de mis marcadores usando esto. […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: