Descarci un fișier HTML. Ce poate face, ce nu poate — și cum verifici singur
Dacă ai ezitat înainte să descarci Jurnalul AI, ai făcut exact ce trebuia. O pagină HTML pusă pe calculatorul tău chiar poate rula cod, iar „e doar un fișier, n-ai nicio grijă” e genul de propoziție care ar trebui să te pună în gardă, nu să te liniștească. Așa că nu îți cerem să ne crezi pe cuvânt. Îți arătăm ce riscuri există cu adevărat, unde sunt limitele lor, și trei feluri în care poți verifica singur — începând cu unul care nu-ți cere să deschizi fișierul deloc.
Jurnalul AI e explicat în trei articole care se citesc cel mai bine în ordine: primul spune de ce ai nevoie de un obicei, nu de încă un curs, al doilea arată unealta pe dinăuntru, al treilea se ocupă de siguranța fișierului pe care îl descarci. Se pot citi și separat, dar dacă ai ajuns direct aici, cel mai bine e să începi cu primul.
- Obiceiul nu se construiește. Se lipește începe aici
- Două casete și o cafea. Tot ce ai de completat în Jurnalul AI
- Descarci un fișier HTML. Ce poate face, ce nu poate și cum verifici ești aici
// Cuprins
Ezitarea e reflexul corect
Profesia contabilă are un avantaj nativ aici, despre care am mai scris: reflexul de confidențialitate. GDPR, secret profesional, codul etic, toate te-au învățat să te întrebi unde ajung datele înainte să apeși pe ceva. E exact reflexul care lipsește în majoritatea celorlalte departamente.
Așa că, dacă ai descărcat un fișier de pe un site și te-ai oprit o clipă înainte să dai dublu-click, nu ești paranoic. Ești atent. Iar articolul ăsta nu e scris ca să te liniștească, ci ca să-ți dea instrumentele prin care să te liniștești singur.
Un furnizor care îți spune „ai încredere” îți cere ceva. Unul care îți arată cum să verifici îți dă ceva.
De ce un fișier HTML și nu altceva
Prima întrebare rezonabilă e de ce am ales tocmai formatul ăsta. Un PDF ar fi părut mai cuminte. O aplicație, mai serioasă. Un cont online, mai modern.
Problema e că aproape orice format poate rula cod. PDF-urile pot conține JavaScript, de aici o parte din vulnerabilitățile celebre ale cititoarelor de PDF. Fișierele Excel pot conține macrouri, care rulează pe calculatorul tău cu drepturile tale, în afara oricărei cutii de siguranță. Un program instalat are, prin definiție, acces la tot.
Diferența reală nu e „rulează sau nu rulează cod”. Sunt alte două lucruri: cât de multă putere are codul și dacă îl poți citi.
| Format | Poate rula cod | Cu ce drepturi | Îl poți citi tu? |
|---|---|---|---|
| Program instalat (.exe) | Da | Ale tale, complet — fișiere, rețea, pornire automată | Nu. E compilat |
| Excel cu macrouri (.xlsm) | Da | Aproape ale tale, în afara browserului | Parțial, dacă știi unde să te uiți |
| Da, JavaScript încorporat | Limitate de cititor | Greu — e format binar | |
| Aplicație web cu cont | Da | Codul rulează la ei, datele stau la ei | Nu. Se poate schimba oricând, fără să afli |
| Pagină HTML | Da | Doar cele din cutia browserului | Da, integral. E text |
Asta e toată logica alegerii. Un .exe nu poate fi citit de nimeni: nici de tine, nici de un expert, nici de un asistent AI. O pagină HTML e text de la primul până la ultimul caracter. Se deschide cu orice editor de text, iar fiecare cuvânt din ea poate fi citit de tine, de un coleg din IT sau de un asistent AI.
Transparența nu e o promisiune pe care ți-o facem. E o proprietate a formatului.
La care se adaugă avantajele practice: un singur fișier, fără instalare, fără cont, fără email, merge pe orice sistem cu un browser, funcționează fără internet și rămâne al tău dacă mâine site-ul dispare.
Ce poate face o pagină descărcată
Acum partea incomodă, spusă fără menajamente. O pagină HTML deschisă de pe calculatorul tău rulează JavaScript, la fel ca orice site. Una scrisă cu intenții rele ar putea:
- Să trimită ce scrii. Riscul principal. Dacă are cod de rețea, tot ce tastezi poate pleca spre un server, în timp real, fără ca tu să vezi ceva pe ecran.
- Să aducă alt cod de pe internet. Fișierul pe care l-ai verificat azi poate încărca mâine cu totul altceva, dacă are voie să se conecteze undeva.
- Să semnaleze că ai deschis-o. O simplă imagine încărcată de pe un server extern spune cuiva că, la ora asta, cineva de la adresa asta a deschis fișierul.
- Să te redirecteze către o pagină care imită un site cunoscut și îți cere parole.
- Să declanșeze o descărcare sau să te împingă spre una.
- Să-ți ceară permisiuni: cameră, microfon, localizare, notificări. Browserul întreabă, dar oamenii apasă „Permite” din reflex.
- Nu-ți citește fișierele. Nu poate umbla prin foldere. Ajunge la un fișier doar dacă îl alegi tu, printr-o fereastră de selecție.
- Nu vede celelalte taburi. Nu poate citi sesiunea de la bancă, mailul sau SPV-ul. Browserul ține fiecare pagină în cutia ei.
- Nu instalează nimic. Nu e un program. Nu se scrie în sistem, nu pornește odată cu calculatorul.
- Nu rămâne activă. Închizi tabul, se oprește. Nu rulează în fundal după aceea.
- Nu ia permisiuni în tăcere. Camera, microfonul și localizarea cer acordul tău explicit, de fiecare dată.
Concluzia onestă: riscul e real, dar are un contur clar. Practic totul se reduce la o singură întrebare: poate fișierul să vorbească cu internetul? Dacă nu poate, aproape niciunul dintre pericolele din coloana stângă nu se mai poate întâmpla. Iar asta se verifică ușor.
Ce am ales noi: nimic ascuns
Jurnalul AI e construit pornind exact de la întrebarea de mai sus. Nu conține niciun mecanism prin care să se conecteze undeva. Nu pentru că am promis noi, ci pentru că liniile de cod care ar face asta pur și simplu nu există în fișier.
Iată ce conține, numărat:
| Ce am căutat | Ce ar însemna dacă ar exista | Găsit |
|---|---|---|
fetch, XMLHttpRequest, WebSocket, sendBeacon, EventSource |
Trimite sau aduce date de pe internet | 0 |
eval, new Function, document.write, atob |
Execută cod construit din text — folosit ca să ascunzi ce face codul | 0 |
<iframe>, <object>, <embed>, <form> |
Încarcă altă pagină înăuntru sau trimite date undeva | 0 |
<script> |
Cod. Contează dacă e scris în fișier sau adus din altă parte | 1, scris în fișier, fără src |
src="http |
Aduce ceva de pe un server extern la fiecare deschidere | 0 |
| Fonturi externe | Semnalează unui furnizor de fonturi că ai deschis fișierul | 0 — folosește fonturi de sistem |
| Adrese externe | Unde te poate trimite | 16, toate către aiaccountinghub.ro, doar la click |
| Cookie-uri | Urmărire între sesiuni | 0 |
Două lucruri pe care le-am fi putut ascunde și nu le ascundem, pentru că altfel v-ați fi întrebat despre ele:
Există o cerere de permisiune în fișier. Una singură. E cea prin care browserul te întreabă dacă are voie să rescrie fișierul .md pe care tu l-ai ales la salvarea anterioară. Fără ea, ai avea zece copii cu nume diferite în folderul de descărcări. Nu are legătură cu camera, microfonul sau localizarea.
Există două apariții ale unei adrese care începe cu http://. Amândouă sunt http://www.w3.org/2000/svg, nu e o conexiune, ci numele oficial al formatului grafic folosit de pictograma jurnalului. Apare în orice fișier care conține un desen vectorial. Dacă îți dă un asistent AI un avertisment despre ea, e o alarmă falsă.
Trei feluri de a verifica
Sunt aranjate în ordinea în care le recomandăm. Niciuna nu-ți cere să știi programare, și niciuna nu te obligă să citești conținutul fișierului, lucru care contează, din motivul explicat mai jos.
1 · Pui un asistent AI să-ți facă un raport
Începem cu ea pentru că e cea mai potrivită pentru cei mai mulți oameni, și nu din snobism tehnologic. Are trei calități pe care celelalte nu le au: nu deschizi deloc fișierul, nu trebuie să știi ce înseamnă cuvintele pe care le caută, și primești la final un verdict scris, nu o listă de rezultate pe care să le interpretezi singur.
Descarci fișierul, îl încarci într-un asistent AI, oricare dintre Claude, ChatGPT sau Gemini acceptă atașamente, și lipești promptul de mai jos. În mai puțin de un minut ai un raport.
Îți atașez un fișier HTML pe care intenționez să-l deschid în browser, pe calculatorul meu. Vreau un raport de siguranță despre el. IMPORTANT: nu-mi rezuma conținutul și nu-mi spune ce texte conține. Ignoră complet partea de conținut — mă interesează exclusiv codul și comportamentul lui. Dacă îmi dezvălui conținutul, îmi strici motivul pentru care folosesc fișierul. Structurează raportul exact așa: VERDICT O singură frază: aș avea vreun motiv real de îngrijorare dacă deschid fișierul? Adaugă un nivel de risc — scăzut, mediu sau ridicat. CE AM VERIFICAT Răspunde punctual la fiecare punct, cu DA sau NU și cu detalii unde e cazul: 1. Apeluri de rețea (fetch, XMLHttpRequest, WebSocket, sendBeacon, EventSource, import dinamic). Dacă există, către ce adrese? 2. Resurse încărcate din exterior (script, link, img, iframe, fonturi). De unde anume? 3. Cod ofuscat sau executat dinamic (eval, new Function, atob, document.write, șiruri codificate, nume de variabile ilizibile). 4. Se colectează ceva din ce scrie utilizatorul și se trimite undeva? 5. Cere permisiuni de browser (cameră, microfon, localizare, notificări, clipboard)? În ce scop? 6. Redirecționări automate sau descărcări declanșate fără acțiunea utilizatorului. 7. Unde se salvează datele utilizatorului și cine le poate citi. SEMNALE DE ATENȚIE Dacă ai găsit ceva îngrijorător, citează linia exactă și explică-mi în cuvinte simple de ce e o problemă. ALARME FALSE Listează separat lucrurile care par suspecte la prima vedere, dar au o explicație tehnică banală — ca să nu mă sperii degeaba. Scrie tot raportul pe înțelesul cuiva fără studii tehnice.
Ultimele două secțiuni cerute sunt cele care fac diferența. Fără ele, asistenții au tendința să semnaleze lucruri perfect normale, cum e adresa aceea w3.org, și te sperie degeaba. Cerându-i explicit să le separe, primești un raport pe care chiar te poți baza.
Două limite, spuse cinstit. Prima: un asistent AI poate greși în ambele sensuri: poate rata ceva sau poate inventa o problemă inexistentă. E o verificare în plus, nu un certificat. De asta urmează încă două metode. A doua: încărcând un fișier într-un asistent, fișierul ajunge la furnizorul acelui asistent. Pentru jurnal nu contează absolut deloc, fiindcă e public, oricine îl poate descărca de pe site. Dar reflexul de a te întreba asta înainte, nu după, e exact ce încercăm să construim aici.
2 · Te uiți la trafic
Metoda asta nu are cum să mintă. În loc să cauți prin cod ce ar putea să facă fișierul, te uiți pur și simplu la ce face: cu ce vorbește, în timp real, în timp ce îl folosești.
Deschide fișierul în Chrome sau Edge.
Apasă F12. Se deschide panoul de dezvoltare. Alege tabul Network (Rețea).
Reîncarcă pagina cu Ctrl+R, ca panoul să prindă totul de la început.
Folosește jurnalul normal câteva minute: apasă Start, scrie ceva în casete, deschide instrumentele, salvează.
Uită-te la listă. Dacă rămâne goală, sau conține doar fișierul însuși, nu pleacă nimic nicăieri. Nu e o opinie, e ce vede browserul.
Funcționează pentru absolut orice pagină, inclusiv pentru site-urile pe care le vizitezi zilnic. Fă o dată exercițiul pe un site de știri, ca să vezi contrastul: acolo lista se umple cu zeci de linii în câteva secunde.
3 · Deschizi fișierul cu un editor de text
Fiind text de la primul până la ultimul caracter, jurnalul poate fi deschis cu orice editor de text. Nu contează care, oricare face aceeași treabă.
Odată deschis, codul devine vizibil integral. Și aici e o alegere pe care am făcut-o deliberat: nu am ascuns nimic. Nicio bucată de cod comprimată, niciun text codificat, niciun nume de variabilă schimbat ca să devină de neînțeles. Practicile astea au uneori motive legitime, de la fișiere mai mici la încărcare mai rapidă, dar au și efectul că fac codul imposibil de citit de un om obișnuit. Într-un fișier care se descarcă și se ține pe calculatorul cuiva, am considerat că lizibilitatea bate cu mult câțiva kilobytes economisiți.
Ceea ce înseamnă că poți verifica singur fiecare afirmație din tabelul de mai sus. Nu citind. Căutând. Folosește funcția de căutare a editorului, de obicei Ctrl+F, pentru fiecare rând de mai jos. Când un cuvânt lipsește, editorul îți spune că nu l-a găsit. Aia e vestea bună.
| Caută | Ce ar însemna dacă apare | Ar trebui să găsești |
|---|---|---|
fetch( | Trimite sau aduce date de pe internet | nimic |
XMLHttpRequest | Același lucru, metodă mai veche | nimic |
WebSocket | Canal deschis permanent către un server | nimic |
sendBeacon | Trimite date discret, chiar și la închiderea paginii | nimic |
eval( | Execută cod construit din text — clasic pentru cod ascuns | nimic |
new Function | Același lucru, altă formă | nimic |
atob( | Descifrează text codificat, adesea ca să ascundă instrucțiuni | nimic |
<iframe | Încarcă altă pagină în interiorul acesteia | nimic |
<form | Trimite ce ai completat către o adresă | nimic |
src="http | Aduce un fișier de pe un server extern la fiecare deschidere | nimic |
https:// | Adrese externe | doar aiaccountinghub.ro |
De ce nu vezi codul aici
Ai observat, poate, că într-un articol despre transparență nu apare nicio captură cu interiorul fișierului. Nu e o scăpare.
Fișierul conține, în text simplu, toți cei 30 de termeni, cele șase activități săptămânale și promptul final. Cine îl deschide și derulează prin el află din prima zi tot ce urma să descopere în șase săptămâni. Călătoria se strică singură.
Nu te rugăm să nu te uiți pentru că avem ceva de ascuns. Te rugăm tocmai pentru că nu avem.
E, dacă stai să te gândești, cea mai bună dovadă posibilă pentru afirmațiile din articol. Un fișier în care nimic nu e ascuns e și un fișier în care nimic nu poate fi ascuns de tine.
De asta cele trei metode de verificare sunt construite toate ca să te ferească de conținut: asistentul AI primește instrucțiunea explicită să nu-ți povestească nimic, traficul nu-ți arată text, iar căutarea îți arată doar cuvântul cerut.
Aceeași listă, pentru orice fișier
Tot ce ai citit până aici funcționează pentru orice HTML care ajunge la tine: de la un furnizor, de la un client, dintr-un newsletter. Câteva reguli care se adaugă:
- Sursa contează mai mult decât formatul. Un fișier primit pe mail de la cineva pe care nu-l cunoști nu se deschide, indiferent ce extensie are. Verificarea e pentru fișierele pe care ai un motiv să le vrei.
- Ordinea riscului nu e cea intuitivă. Un
.xlsmcu macrouri e mult mai periculos decât un HTML, pentru că macroul rulează în afara cutiei browserului, cu drepturile tale. Un.exee în altă categorie cu totul. - Orice fișier care îți cere să activezi ceva e o alarmă. „Activează macrourile ca să vezi conținutul”, „Enable content”, „Dezactivează temporar antivirusul”. Nu există motiv legitim pentru genul ăsta de cerere.
- Cu cât un fișier e mai ușor de citit, cu atât e mai ușor de verificat. Un fișier care nu poate fi citit de nimeni îți cere, obligatoriu, încredere. Unul care poate fi citit îți lasă alegerea.
- Verifică din nou după fiecare actualizare. Un fișier curat azi poate fi altul mâine. Verificarea nu e o dată pentru totdeauna, e un obicei de cinci minute, o dată pe versiune.
Ultimul cuvânt e tot al tău
În articolul precedent am scris despre termenul cu care se închide jurnalul: Human-in-the-Loop. AI-ul face prima trecere, omul decide și răspunde. Nu ca formulă de politică internă, ci ca decizie luată de fiecare dată, pentru fiecare set de date.
Verificarea unui fișier înainte să-l deschizi e exact același reflex, mutat cu un pas mai devreme. Nu accepți un rezultat pentru că vine de la un sistem care pare competent. Nu accepți un fișier pentru că vine de pe un site care pare serios. Te uiți, în amândouă cazurile, și abia apoi decizi.
Iar dacă, după toate verificările, tot preferi să nu-l descarci, e o decizie perfect rațională și o respectăm. Aceeași logică ca la a patra opțiune din finalul jurnalului: decizi că rămâne offline, și e un răspuns la fel de bun ca celelalte.