Faceți căutări pe acest blog

Cum iti transferi datele de utilizator din Chromium sau Chrome in Firefox ?

Poate candva, la inceputul carierei lor de browser, Chrome si fratele sau mai mic, varianta open-source, Chromium, au fost browsere serioase, rapide, prietenoase cu utilizatorul, si sigure din punct de vedere al protectiei navigarii si datelor personale, insa, cu trecerea timpului, au inceput ambele sa piarda legatura cu realitatea, si utilizarea celor doua browsere a devenit mai mult religie, decat optiune de tehnologie utilizata.

Transfera-ti datele de utilizator din
Google Chrome sau Chromium
in Firefox pe Linux
Lipsa unei bare de stare, lipsa absoluta a posibilitatii de a configura sau regla anumite aspecte comportamentale ale browserului, si atitudinea tot mai flegmatica si nepasatoare a dezvoltatorilor ambelor navigatoare, m-a determinat pe mine si multi altii, sa schimb chromium-ul pe firefox. Cea mai mare problema la trecerea de la Chrome la Firefox a fost intotdeauna insa, transferul parolelor si conturilor de utilizator, dintr-un navigator in altul. Daca ai doar 2-3 conturi de utilizator, pe doar cateva situri, nu e o problema, sa recreezi conturile respective in navigatorul Firefox, insa, daca ai peste 300 de conturi, si parole, cum era si cazul meu, este foarte greu si e o munca titanica, sa rescrii fiecare login / parola in noul browser.
Prin urmare, am cautat zile intregi solutii online, atat pe forumurile de suport google, cat si pe cele de suport mozilla/firefox, dar in afara
de cateva raspunsuri flegmatice din partea smecherasilor de programatori ( tre' sa fie smecherasi, ca altfel nu-mi explic, de ce vorbesc cu utilizatorii asa flegmatic), si cateva semi-raspunsuri si jumatati de solutie gasite pe net, de fapt, solutia nu a fost de gasit.
Asa ca, fiind si eu programator, printre altele, am pus capsorul la treaba si am gasit o solutie destul de usor de implementat, cu ajutorul careia conturile de utilizator si parolele se pot prelua din Chrome sau Chromium, in Firefox !
Solutia prezentata aici functioneaza PE LINUX, deci daca nu folositi un sistem de operare bazat pe linux, sunt putine sanse, sa puteti face transferul fara macar ajutorul unui cd de pornire linux, (linux boot cd sau linux live cd), si cel mai probabil, o sa aveti nevoie si de ajutorul cuiva care e cat-decat familiarizat cu linuxul !
Pentru voi, ceilalti, care utilizati deja Linux, iata aici solutia. O sa aveti nevoie de acces in terminal - nu de superuser, ci doar de acces in terminal ca utilizator normal - de php si de bash, respectiv, sqlite3 trebuie sa fie instalat. Si pentru ca scriptul php prezentat aici, trebuie sa ruleze in LINIA DE COMANDA, si NU CA PAGINA WEB, adica, trebuie interpretata direct in terminal, trebuie sa aveti instalat si "php-cli*" cu versiunea potrivita interpretorului PHP instalat pe sistemul vostru.
(Daca nu ati inteles pana aici... nu cred ca are rost sa continuati :)  )
Instalati deci, pachetul php-cli pe sistemul vostru, si urmati pasii de mai jos.
Butonul pentru importarea fisierului
XML creat cu ajutorul scriptului PHP
prezentat in acest articol
In primul rand, trebuie sa efectuam o sincronizare completa in Google Chrome sau Chromium, a parolelor si datelor de utilizator, intre serverele de stocare google si bazele de date locale de stocare, ale navigatorului, deci browserul trebuie pornit cu o anumita comanda.
Eu folosesc chromium, deci comenzile si locatiile se refera aici la locatia potrivita acestui browser, cei care folosesc google chrome pe linux, vor modifica partile necesare ale comenzilor in asa fel, incat sa se potriveasca cu sistemul lor si locatia potrivita pentru chrome.
Pornim browser-ul fortand o sincronizare completa:
(se poate introduce comanda direct in terminal - terminalul fiind pornit de sub interfata grafica, bineinteles - sau direct in casuta de rulare comenzi, cum e de exemplu ALT+F2 pe gnome traditional. Pe debandarda aia de gnome 3 habar nu am cum se ruleaza o comanda, si nici nu intentionez sa aflu foarte curand :) )
/usr/bin/chromium-browser %U –password-store=basic

Asteptam cateva minute pentru sincronizare, si daca avem indicator led pe calculator sau laptop, pentru a putea urmari activitatea HDD-ului, urmarim LED-ul respectiv si vom continua cu restul procedurilor doar dupa ce ne-am convins ca sincronizarea a avut loc si HDD-ul nu mai are activitate.

Dupa sincronizare, inchidem browserul, asigurandu-ne ca nu raman procese de fundal ale browserului, neterminate. Pe Gnome2 si Mate, pe Xfce si LXDE, daca mediul de lucru este bine reglat, in spatiul de notificare - de obicei in dreapta, cam langa ceas/calendar - apare o iconita care indica ca exista procese de fundal active, chiar daca browserul a fost inchis, in cazul in care rularea acestor procese a fost permisa browserului, respectiv, mai nou, la instalare, nu te intreaba nimeni nimic, din start, exista procese de fundal !

Daca exista deci o astfel de iconita a browserului in spatiul de notificare, dam clic-dreapta pe ea, si alegem "exit" sau inchidere, in functie de limba interfetei folosite. Asteptam cateva secunde pentru a permite harddiskului sa goleasca memoria tampon si sa termine scrierea fizica a datelor pe disk.
Este de preferat, sa creem un folder separat, pentru operatiunile de mai jos. De exemplu "parolechrome" sau similar. Si intram in terminal, in folderul respectiv, pentru restul operatiunilor.
De ex.

user@calculator ~ $ mkdir parolechrome
user@calculator ~ $ cd parolechrome

Dupa asta, facem o copie a bazei de date care stocheaza datele de autentificare (conturile de utilizator si parolele) ale browserului, pentru a fi siguri ca operatiunile ulterioare efectuate asupra bazei de date, le vom face pe o copie, si NU pe baza de date originala, in caz ca nu reuseste vreo operatiune, sa nu ramanem fara browserul chrome sau chromium.
cp ~/.config/chromium/Default/Login\ Data ./logins.sqlite

Adica, am copiat baza de date intr-una noua, numita "logins.sqlite".
Extragem apoi parolele, din aceasta baza de date, in format CSV, intr-un fisier text, care ulterior va putea fi transformat cu ajutorul scriptului php, intr-un format XML inteligibil de catre o anumita extensie firefox, care administreaza exportul si importul datelor de utilizator.

sqlite3 -noheader -csv -separator ‘,’ logins.sqlite “SELECT * FROM logins” >logins.txt
Avem in acest moment, textul care contine toate datele noastre de utilizator exportate din chrome/chromium.
Scriem apoi un fisier XML, pornind de la datele respective, intr-un anumit format, cu ajutorul urmatorului script PHP. Recomand ca fisierul sa fie denumit parse_me.php de dragul simplitatii (am scris acest articol in 3 limbi diferite, si e mai usor sa fie numit la fel).
--------- inceput fisier php --------
<?php
#incarcam fisierul text ca si multime (array)
$lines=file(‘logins.txt’);
#ne asiguram ca pastram doar valorile unice, eliminand duplicatele
$lines=array_unique($lines);
#creem fisierul care va contine valorile xml inteligibile de o anumita extensie firefox
$handle=fopen(“chromium_pass_export.xml”,”w+”);
$passex_header=’<xml>’ . “\n” . ‘<entries ext=”Password Exporter” extxmlversion=”1.1″ type=”saved” encrypt=”false”>’ . “\n”;
fwrite($handle,$passex_header);
#parcurgem valorile multimii si transformam valorile potrivite, citite, in siruri pentru fisierul xml
foreach($lines as $key => $value)
{
#fiecare linie string_value este separabila pe subelemente, separatorul fiind virgula ‘,’  !
$array=explode(“,”,$value);
#incepem compunerea sirurilor XML din valorile separate cu virgula
$newline=’<entry host=”‘;
$thehost = str_replace(“=”,”%3d”,$array[0]) ;
$thehost = str_replace(“&”,”%26″,$thehost);
$newline .= $thehost . ‘”‘;
if(empty($array[3]) || $array[3]==’”"‘)
{
$newline .=’ user=”"‘ ;
}
else
{
$newline .=’ user=”‘ . str_replace(‘”‘,”,$array[3]) . ‘”‘;
}
if(empty($array[5]) || $array[5]==’”"‘)
{
$newline .=’ password=”"‘;
}
else
{
$newline .=’ password=”‘ ;
$thepass=str_replace(‘”‘,”,$array[5]) ;
$thepass=str_replace(“%”,”%25″,$thepass);
$thepass=str_replace(“&”,”%26″,$thepass);
$newline .= $thepass . ‘”‘;
}
if(empty($array[1]) || $array[1]==’”"‘)
{
$newline .=’ formSubmitURL=”"‘;
}
else
{
$newline .=’ formSubmitURL=”‘;
$theurl= str_replace(“=”,”%3d”,$array[1]) ;
$theurl = str_replace(“&”,”%26″,$theurl);
$newline .= $theurl . ‘”‘;
}
$newline .=’ httpRealm=”"‘;
if(empty($array[2]) || $array[2]==’”"‘)
{
$newline .=’ userFieldName=”"‘;
}
else
{
$newline .=’ userFieldName=”‘ . str_replace(‘”‘,”,$array[2]) . ‘”‘;
}
if(empty($array[4]) || $array[4]==’”"‘)
{
$newline .=’ passFieldName=”" />’ . “\n” ;
}
else
{
$newline .=’ passFieldName=”‘ . str_replace(‘”‘,”,$array[4]) . ‘” />’ .”\n”;
}
fwrite($handle,$newline);
}
$passex_footer=’</entries>’ . “\n” . ‘</xml>’;
fwrite($handle,$passex_footer);
fclose($handle);
?>
----- sfarsit fisier php -------
Si acum, cateva observatii, chestii de respectat OBLIGATORIU: alternanta ghilimelelor simple cu cele duble, trebuie obligatoriu pastrata asa cum le-am alternat eu in script, pentru ca in anumite siruri de caractere si valori, valorile si sirurile ele insele contin ghilimele, si nu e totuna in ce ordine le alternezi, deci incapsularea respectiva trebuie pastrata. De asemenea, codificarea entitatilor, cum ar fi ce a semnului de egalitate, “=” cu “%3d”, respectiv, semnul ampersand “&” cu “%26″, etc., este obligatorie, pentru ca, la final, vrem sa detinem un fisier corect scris din punct de vedere sintactic XML, inteligibil de catre extensia potrivita, a firefox-ului.
Salvam deci fisierul de mai sus, ca "parse_me.php", dupa care in terminal, in acelasi folder creat pentru acest scop, introducem comanda:
php parse_me.php
si tastam enter. In functie de numarul de conturi de salvat in noul format, s-ar putea sa dureze mai mult sau mai putin :)
( glumeam, in cazul meu, cu vreo 400 de conturi, a durat cam o secunda ). Cand prompt-ul /cursorul a reaparut in fereastra de terminal, detinem un fisier XML pe care il vom importa imediat in firefox.
Locatia butonului de administrare
a conturilor de utilizator
in Firefox, dupa instalarea extensiei
indicate in acest articol
Sa vedem acum extensia respectiva pentru administrarea conturilor de utilizator. Pornim browserul firefox, si in adminstratorul de extensii (shift+ctrl+a sau langa unelte/extensii in meniu, "tools-addon" in engleza), introducem in casuta de cautare a noilor extensii "Password Exporter", si instalam extensia de administrare. Daca managerul de extensii nu gaseste extensia potrivita, mergem direct la adresa urmatoare pe situl grupului mozilla :
https://addons.mozilla.org/en-US/firefox/addon/password-exporter/
Dupa instalarea extensiei respective, putem gasi in casuta de dialog a setarilor firefox, la "Security", (securitate), un buton in plus, pentru administrarea parolelor si conturilor. Dand click pe butonul respectiv, si ulterior, in casuta de dialog care se va deschide, pe "Import passwords", localizam fisierul "chromium_pass_export.xml" (sau ce denumire i-am dat), pe care l-am creat cu ajutorul scriptului php si il importam in extensie.
Dupa cateva secunde, in care ni se va afisa in casuta de dialog inclusiv progresul importului de date, vom avea disponibile in firefox toate datele de utilizator din Chrome sau Chromium, cu nume de utilizator si parole, complet.
Bineinteles, modalitatea oarecum rudimentara prezentata aici, poate fi mult imbunatatita, intregul proces prezentat mai sus, poate simplificat prin crearea unui script bash care sa execute atat extragerea de parole, cat si crearea fisierului respectiv XML.
Putem scrie, de exemplu, urmatorul continut intr-un fisier bash
cp ~/.config/chromium/Default/Login\ Data ./logins.sqlite
sqlite3 -noheader -csv -separator ‘,’ logins.sqlite “SELECT * FROM logins” >logins.txt
php parse_me.php
si salvam fisierul cu numele “get_chr_pass” , dupa care marcam fisierul respectiv ca executabil prin comanda :
chmod +x get_chr_pass
si din acel moment, o singura comanda introdusa in terminal, DACA NE AFLAM IN FOLDERUL respectiv,  in care este salvat acest fisier, prin simpla tastare a comenzii
./get_chr_pass
face copia bazei de date, extrage datele de utilizator, si creeaza fisierul xml necesar importului in firefox.
Iar in caz ca, stimate cititor, esti deja un utilizator Linux mai experimentat, si vrei doar cele 2 fisiere, respectiv, “get_chr_pass” si “parse_me.php", iata ti le pun la dispozitie (NU UITA !!! Click-dreapta si "salvare ca..." sau "save as"... altfel, o sa fi interpretate !! )

Fisierul GET_CHR_PASS
Fisierul PARSE_ME.PHP


Sper ca acest articol sa fie de un real ajutor tuturor celor ce vor sa renunte la chrome/chromium in favoarea browserului Firefox, si le va permite sa isi transfere datele de utilizator cu parole cu tot.
Daca intampini erori, stimate cititor, pe parcursul operatiunilor de transfer prezentate aici, lasa-mi un comentariu, si voi incerca sa te ajut, raspunzandu-ti la intrebare cat de curand posibil. Si nu in ultimul rand, daca crezi ca informatiile prezentate aici, pot fi de ajutor si altora, imparte, distribuie acest articol prietenilor, rudelor, apropiatilor tai, ca si lor sa le poata fi de folos.
Astept comentariile cu interes :)

Cauta pe blog

Parteneri