En este tutorial utilizaré a Opera, Google Chrome, Mozilla Firefox, Safari e Internet Explorer para mostrar con cada uno de ellos cómo eliminar el cache de páginas visitadas, las cookies (e.g. preferencias y sesiones iniciadas en el servidor), y el historial de navegación. Las técnicas aquí mencionadas son específicas para el sistema operativo Microsoft Windows, pero espero pronto hacer una versión que incluya los detalles para hacer lo mismo en GNU/Linux y Mac OS X. Por lo tanto no se asombren si encuentran scripts .bat a lo largo de todo el artículo. Al final también trato el tema de eliminar las cookies específicas de Adobe Flash Player que son independientes del navegador web.
Google Chrome
Google Chrome, al igual que Chromium, guarda la historia, los cookies el cache y los bookmarks en varias bases de datos en el directorio de configuración de aplicaciones del usuario. La ruta en cuestión es C:\Users\<username>\AppData\Local\Google\Chrome\User Data . La manera más fácil de eliminar esos datos es borrar todo lo que esté ahí. El navegador crea todos los ficheros necesarios para empezar desde cero en caso de no encontrar nada allí.
@echo off set ChromeDir=C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data del /q /s /f "%ChromeDir%" rd /s /q "%ChromeDir%"
El script primeramente borra todos los ficheros en la carpeta antes mencionada y luego el propio directorio. La opción /q del comando del es para que no se imprima información en la pantalla, mientras que /s es para borrar ficheros y carpetas de forma recursiva y /f se utiliza para obligarlo a que borre ficheros de solo lectura. Las opciones /q y /s del comando rd son similares a las ya mencionadas, solo que en vez de ficheros se borran carpetas.
Mozilla Firefox
Firefox guarda las cookies, el cache y el historial en dos lugares. Primeramente en el directorio de configuración de aplicaciones C:\Users\<username>\AppData\Local\Mozilla\Firefox\Profiles y, en segundo lugar, en el directorio C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles. Para eliminar los datos privados se puede proceder a borrar el primer directorio y todas las bases de datos sqlite que se encuentren en el segundo.
@echo off set DataDir=C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles del /q /s /f "%DataDir%" rd /s /q "%DataDir%" for /d %%x in (C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\*) do del /q /s /f %%x\*sqlite
La primera parte del script es muy similar a la que se explicó anteriormente. El comando for que aparece al final se utiliza para procesar uno a uno los subdirectorios de la carpeta C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles e ir borrando las bases de datos sqlite que allí aparecen. No es aconsejable borrar completamente esta carpeta porque es allí donde Firefox guarda las extensiones y sus respectivas configuraciones.
Opera
Opera también guarda los datos privados en dos lugares diferentes de una forma parecida a Firefox : el directorio de datos de aplicaciones específico para el usuario C:\Users\<username>\AppData\Local\Opera\Opera y la carpeta C:\Users\<username>\AppData\Roaming\Opera\Opera. Si se eliminan los dos directorios se logra el objetivo sin muchos problemas colaterales.
@echo off set DataDir=C:\Users\%USERNAME%\AppData\Local\Opera\Opera set DataDir2=C:\Users\%USERNAME%\AppData\Roaming\Opera\Opera del /q /s /f "%DataDir%" rd /s /q "%DataDir%" del /q /s /f "%DataDir2%" rd /s /q "%DataDir2%"
Apple Safari
El proceso con Safari es muy parecido al caso de Opera, pero en este caso utilizando los directorios C:\Users\<username>\AppData\Local\Apple Computer\Safari y C:\Users\<username>\AppData\Roaming\Apple Computer\Safari. El script quedaría de la siguiente forma.
@echo off set DataDir=C:\Users\%USERNAME%\AppData\Local\Applec~1\Safari set DataDir2=C:\Users\%USERNAME%\AppData\Roaming\Applec~1\Safari del /q /s /f "%DataDir%\History" rd /s /q "%DataDir%\History" del /q /s /f "%DataDir%\Cache.db" del /q /s /f "%DataDir%\WebpageIcons.db" del /q /s /f "%DataDir2%" rd /s /q "%DataDir2%"
Microsoft Internet Explorer
Estoy seguro de que no se sorprenderán cuando les diga que el caso del Internet Explorer es ... es más complicado :o). La historia de páginas visitadas, los cookies y el cache se encuentra disperso por todos lados, incluyendo el Registro de Windows. A continuación les presento un script que borra toda la información que se encuentra en el sistema de archivos y finalmente en el registro.
@echo off set DataDir=C:\Users\%USERNAME%\AppData\Local\Microsoft\Intern~1 del /q /s /f "%DataDir%" rd /s /q "%DataDir%" set History=C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\History del /q /s /f "%History%" rd /s /q "%History%" set IETemp=C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Tempor~1 del /q /s /f "%IETemp%" rd /s /q "%IETemp%" set Cookies=C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Cookies del /q /s /f "%Cookies%" rd /s /q "%Cookies%" C:\bin\regdelete.exe HKEY_CURRENT_USER "Software\Microsoft\Internet Explorer\TypedURLs"
El ejecutable invocado al final es regdelete.exe. Esta es una aplicación Win32 escrita en C++ que borra cualquier llave del registro, en este caso la historia de navegación. A continuación les muestro el código:
#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <vector> #include <string> // compile as: mingw32-g++ regdelete.c -o regdelete.exe -mwindows #define eq(s1,s2) (strcmp((s1),(s2))==0) int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int nCmdShow) { if (!cmdLine || !strlen(cmdLine)) { printf("Usage: regdel.exe <HKEY> <path to regkey> - be careful not to delete whole registry\n"); return 1; } int argc; LPWSTR *argv = CommandLineToArgvW(GetCommandLineW(), &argc); if (argc < 3) { printf("Usage: regdel.exe <HKEY> <path to regkey> - be careful not to delete whole registry\n"); return 1; } char **argv8 = (char **)malloc(sizeof(char *) * argc); for (int i = 0; i<argc; i++) { int len = wcslen(argv[i]); argv8[i] = (char *)malloc(sizeof(char)*(len+1)); wcstombs(argv8[i], argv[i], len+1); } HKEY hkey; if (eq(argv8[1], "HKEY_CLASSES_ROOT")) { hkey == HKEY_CLASSES_ROOT; } else if (eq(argv8[1], "HKEY_CURRENT_CONFIG")) { hkey = HKEY_CURRENT_CONFIG; } else if (eq(argv8[1], "HKEY_CURRENT_USER")) { hkey = HKEY_CURRENT_USER; } else if (eq(argv8[1], "HKEY_LOCAL_MACHINE")) { hkey = HKEY_LOCAL_MACHINE; } else if (eq(argv8[1], "HKEY_USERS")) { hkey = HKEY_USERS; } else { printf("Unknown hkey\n"); return 1; } HKEY key; int status = RegOpenKeyEx(hkey, argv8[2], 0, KEY_ALL_ACCESS, &key); if (status != ERROR_SUCCESS) { printf("failed opening %s\n", argv8[2]); return 1; } std::vector<std::string> vals; for (unsigned int i = 0; ; i++) { DWORD size = 1024; char val[size+1]; DWORD type; status = RegEnumValue(key, i, val, &size, NULL, &type, NULL, NULL); if (status == ERROR_NO_MORE_ITEMS) break; if (status == ERROR_SUCCESS) { vals.push_back(std::string(val)); continue; } printf("failed enumerating %s\n", argv8[2]); return 1; } typedef std::vector<std::string>::iterator vsi; for (vsi i = vals.begin(); i != vals.end(); i++) { status = RegDeleteValue(key, i->c_str()); if (status != ERROR_SUCCESS) { printf("failed deleting %s\n", i->c_str()); return 1; } } return 0; }
Realmente bello el código :o) ... bueno ... El fichero .exe se obtiene después de compilar este fichero con MinGW o Microsoft Visual Studio.
Flash Cookies
Ha sido largo el camino hasta acá ... así que mejor me apuro y les hablo de los cookies del plugin de Flash. Estos datos se encuentran en la carpeta C:\Users\<username>\AppData\Roaming\Macromedia\Flash Player\*. La forma más fácil de lograr el objetivo es eliminando, de forma similar a como ya lo habíamos hecho antes, todo lo que se encuentra allí.
@echo off set FlashCookies=C:\Users\%USERNAME%\AppData\Roaming\Macromedia\Flashp~1 del /q /s /f "%FlashCookies%" rd /s /q "%FlashCookies%"
Conclusiones
¡Eso es todo! Con estos scripts se pueden eliminar todos los datos personales de navegación. Si quiere estar al tanto de nuevos trucos y temas interesantes, le invito a suscribirse a este blog. Los scripts mostrados pueden ser refinados. Cualquier señalamiento o sugerencia será bienvenida; espero sus comentarios. Recuerde que todo es posible ... simelo pide ....
muy buen aporte
ResponderEliminar