Acord de prelucrare a datelor
Contractul prin care MEGA PROMOTING S.R.L. prelucrează date în numele tău atunci când folosești acest serviciu. Este scris ca să fie semnat, nu ca să fie citit o dată: fiecare obligație de mai jos are alături fișierul din cod care o face adevărată, iar unde codul nu face ceva, scrie că nu face.
28 iulie 2026
De ce ai nevoie de acest document
Art. 28 alin. (3) din Legea nr. 195/2024 spune că prelucrarea făcută de o persoană împuternicită în numele unui operator „este reglementată printr-un contract sau alt act juridic” cu caracter obligatoriu, care stabilește obiectul, durata, natura și scopul prelucrării, tipul de date, categoriile de persoane vizate și obligațiile părților. Alin. (8) cere forma scrisă, inclusiv electronică.
Fără el, tu ești cel expus, nu noi: obligația de a alege doar persoane împuternicite care oferă garanții suficiente și de a încheia contractul îi revine operatorului, adică ție. Din 23 august 2026, când legea intră în vigoare, lipsa contractului intră la art. 88 alin. (1) — obligațiile operatorului și ale persoanei împuternicite, art. 25–39.
Documentul de mai jos este textul pe care îl semnăm. Nu este un rezumat al lui.
Când ești operator și noi suntem persoană împuternicită
Doar pentru un lucru: scanările pe care ni le ceri. Când introduci o adresă în formular sau o trimiți prin API, tu decizi ce se scanează și de ce; noi executăm instrucțiunea și îți întoarcem raportul. Dacă pagina scanată conține date personale — o adresă de email pe pagina de contact, numele cuiva într-o politică, un identificator de cookie — ele ajung în dovezile raportului, iar prelucrarea lor se face în numele tău.
Pentru datele tale de contact — emailul, telefonul, dovada consimțământului, cheia API — noi suntem operator, nu persoană împuternicită. Acolo nu ai nevoie de acest acord, ci de politica de confidențialitate și de pagina de retenție. Le ținem separate pentru că sunt două roluri diferite, cu două seturi de obligații diferite, iar un document care le amestecă nu ajută pe nimeni în fața autorității.
Părțile
Versiunea textului: 2026-07-28
- Persoana împuternicită de operator
- MEGA PROMOTING S.R.L., IDNO 1019600021765, sat. Dănceni, r-nul Ialoveni, MD-6814, Republica Moldova
- Contact
- oleg@megapromoting.com · +373 60 456 690
- Serviciul
- GDPR Scan MD — scanare tehnică a suprafeței publice a unui site
- Operator
- Clientul care semnează — persoana juridică ce cere scanările. Datele de identificare se completează la semnare.
- Legea aplicabilă
- Legea nr. 195/2024 privind protecția datelor cu caracter personal, Republica Moldova.
Clauzele acordului
1. Obiectul, durata, natura și scopul prelucrării
Obiectul: executarea scanărilor tehnice pe adresele pe care operatorul le transmite, prin formularul public sau prin API, și producerea raportului aferent.
Natura prelucrării: colectare automată de dovezi observabile dintr-o pagină publică, stocare, structurare, generarea unui raport și punerea lui la dispoziția operatorului, inclusiv ca PDF.
Scopul: pregătirea conformării cu Legea nr. 195/2024 a site-ului indicat de operator. Nu folosim datele rezultate din scanările tale în alt scop, cu o singură excepție declarată public: cifrele agregate, anonime, din Barometru — număr de domenii distincte, benzi de scor, procente pe constatări — care nu conțin adresa niciunui site și nicio dată de contact.
Durata: pe durata relației contractuale, iar pentru fiecare categorie de date până la termenul din Anexa D.
Se verifică în: packages/scanner/src/loader.ts, lib/scanRunner.ts, lib/barometer.ts
2. Tipul de date și categoriile de persoane vizate
Din pagina scanată: adrese de cereri de rețea, nume și atribute de cookie-uri, antete HTTP, conținutul textual al politicilor găsite, structura formularelor și textul etichetelor lor, capturi de ecran ale paginii și ale bannerului de consimțământ. Oricare dintre ele poate conține incidental date personale publicate de site — o adresă de email de contact, numele unui responsabil, un identificator online.
De la operator: adresa scanată, momentul cererii și, dacă a fost folosit API-ul, cheia prin care a fost autentificată cererea. Adresa IP a solicitantului este prelucrată separat, doar pentru limitarea numărului de cereri.
Categorii de persoane vizate: vizitatorii și angajații identificabili din conținutul public al site-ului scanat, plus persoana care a cerut scanarea.
Nu cerem, nu solicităm și nu avem nevoie de categorii speciale de date în sensul art. 9. Dacă apar în pagina publică a unui site, ajung în dovezi ca orice alt text al paginii; nu le căutăm și nu le clasificăm.
Se verifică în: packages/scanner/src/types.ts, packages/scanner/src/modules/, lib/rateLimit.ts
3. Instrucțiuni documentate (art. 28 alin. (3) lit. a)
Prelucrăm exclusiv pe baza instrucțiunii tale documentate. Instrucțiunea este adresa pe care o trimiți: prin formularul public sau prin API. Nu pornim scanări din proprie inițiativă, nu rulăm crawl-uri programate peste liste de domenii și nu reluăm automat o scanare refuzată.
Te informăm înainte de prelucrare dacă vreo normă ne obligă să prelucrăm altfel decât ne-ai instruit, cu excepția cazului în care informarea este interzisă.
Te anunțăm imediat dacă, în opinia noastră, o instrucțiune încalcă legislația privind protecția datelor — de exemplu o cerere de scanare repetitivă, la volum, a site-ului unei singure companii terțe.
Se verifică în: app/api/scan/route.ts, app/api/v1/scans/route.ts, packages/scanner/src/loader.ts
Ce nu promite această clauză: O instrucțiune nu poate suspenda regulile pe care le aplicăm față de site-ul scanat. Citim /robots.txt înainte de orice altceva și, dacă adresa este interzisă pentru tokenul GDPRScanMD, refuzăm scanarea — nu există în cod nicio opțiune de ocolire, nici pentru un client care plătește. La fel, nu ocolim protecțiile anti-bot și nu falsificăm antete.
4. Confidențialitate (art. 28 alin. (3) lit. b)
Persoanele care au acces la date sunt angajați sau colaboratori ai MEGA PROMOTING S.R.L. ținuți de o obligație de confidențialitate. Rapoartele produse pentru tine nu sunt publicate și nu sunt indexate: paginile de raport trimit „noindex”, iar /report/ este interzis în propriul nostru robots.txt.
Statisticile publice sunt agregate. Nu publicăm liste cu numele site-urilor scanate și nu confirmăm public că un anumit domeniu a fost scanat.
Se verifică în: app/robots.ts, app/report/[id]/page.tsx — NOINDEX_ROBOTS, lib/barometer.ts
Ce nu promite această clauză: Angajamentul de confidențialitate al persoanelor autorizate este organizatoric și contractual — nu are cum să fie verificat citind acest depozit de cod. Îl scriem ca atare, nu ca pe o măsură tehnică.
5. Securitatea prelucrării (art. 28 alin. (3) lit. c, art. 32)
Măsurile efective sunt enumerate în Anexa B, cu fișierul fiecăreia. Pe scurt: transport criptat obligatoriu, o singură mașină în Uniunea Europeană fără CDN terț în față, o politică de securitate a conținutului restrictivă trimisă de aplicație, chei API stocate doar ca amprentă sha256, adrese IP transformate ireversibil înainte de a fi stocate pentru blocarea abuzului, copii de siguranță zilnice cu rotație la 14 zile.
Anexa B spune și ce nu facem. Preferăm o listă scurtă și adevărată uneia lungi și decorative.
Se verifică în: next.config.ts — SECURITY_HEADERS, lib/apiKeys.ts, lib/abuseBlock.ts — hashIp, deploy/backup-db.sh
Ce nu promite această clauză: Baza de date nu este criptată în repaus. Art. 32 cere măsuri adecvate riscului, nu toate măsurile posibile, iar o afirmație de criptare pe care nu o putem arăta în configurație ar fi exact genul de declarație pe care acest produs o semnalează la alții. Dacă îți trebuie criptare la nivel de disc pentru propria evidență, cere-o înainte de semnare și discutăm ce înseamnă concret.
6. Subprocesatori (art. 28 alin. (2) și (4), lit. d)
Prin semnarea acestui acord acorzi o autorizație generală scrisă pentru subprocesatorii din Anexa C și din lista publică de la /subprocesatori.
Când adăugăm sau înlocuim un subprocesator, actualizăm lista publică ÎNAINTE de a activa integrarea în producție și îți comunicăm modificarea la adresa de contact din contract, cu cel puțin 30 de zile înainte. În acel interval poți obiecta motivat; dacă obiecția nu poate fi rezolvată, poți înceta contractul fără penalitate.
Impunem oricărui subprocesator aceleași obligații de protecție a datelor pe care ni le asumăm aici și rămânem pe deplin răspunzători față de tine pentru ce face el.
Se verifică în: lib/contentPages.ts — pagina /subprocesatori, secțiunea „Ce facem când lista se schimbă”
7. Asistență la drepturile persoanei vizate (art. 28 alin. (3) lit. e)
Te ajutăm să răspunzi cererilor întemeiate pe art. 12–22 — acces, rectificare, ștergere, restricționare, portabilitate, opoziție și decizii automatizate — în măsura în care natura prelucrării o permite.
Concret: căutarea persoanei nu se face manual, prin editarea bazei de date. Există o funcție dedicată care normalizează adresa de email și numărul de telefon în toate formele în care ar fi putut fi salvate — majuscule și minuscule, numărul cu prefixul de țară, cu zero în față sau fără — și care rulează întâi în mod de probă: îți arată exact ce rânduri ar șterge, înainte să șteargă ceva.
Termenul nostru de răspuns către tine este de cel mult 15 zile calendaristice de la cerere, ca să îți rămână timp în luna pe care ți-o dă art. 12 alin. (3) pentru a răspunde persoanei vizate.
Se verifică în: lib/retention.ts — parseContactQuery, normaliseEmail, normalisePhone, contactMatches; lib/db.ts — funcțiile de ștergere la cerere
Ce nu promite această clauză: Nu putem identifica o persoană vizată care apare doar în textul unei pagini scanate, pentru că nu indexăm dovezile după persoană. Pentru un astfel de caz ștergem rezultatul scanării în întregime, la cererea ta — este singura operațiune pe care o putem executa corect.
8. Asistență la art. 32–36 și breșele de securitate (lit. f, art. 33 alin. (2))
Te anunțăm fără întârzieri nejustificate, la adresa de contact din contract, după ce luăm cunoștință de o încălcare a securității datelor prelucrate pentru tine. Notificarea conține ce știm în momentul trimiterii: ce s-a întâmplat, ce categorii de date sunt afectate, ce am făcut și ce urmează. Nu așteptăm să avem tabloul complet ca să te anunțăm.
Îți punem la dispoziție informațiile pe care le avem pentru evaluarea de impact și pentru consultarea prealabilă, dacă ai nevoie de ele.
Se verifică în: deploy/ — jurnalele serverului web și ale aplicației
Ce nu promite această clauză: Nu avem un sistem automat de detectare a breșelor. „Luăm cunoștință” înseamnă exact asta: dintr-o alertă a furnizorului de găzduire, dintr-o sesizare, dintr-o verificare proprie. Un contract care ar promite detecție automată ar promite un sistem care nu există.
9. Ștergerea sau returnarea datelor la încetare (lit. g)
La încetarea furnizării serviciilor, la alegerea ta: îți returnăm rezultatele scanărilor tale într-un format structurat (JSON sau CSV), le ștergem, sau amândouă în această ordine. Executăm în cel mult 30 de zile calendaristice de la cerere.
Copiile de siguranță se rotesc automat la 14 zile, deci în cel mult 14 zile de la ștergere nicio copie nu mai conține datele. Acesta este și motivul pentru care putem răspunde onest la o cerere de ștergere.
Termenele automate care se aplică independent de încetarea contractului sunt în Anexa D, cu starea reală a fiecăruia.
Se verifică în: lib/retention.ts — RETENTION_POLICY, deploy/backup-db.sh, lib/exportFormats.ts
10. Informații și audit (lit. h)
Îți punem la dispoziție informațiile necesare pentru a demonstra respectarea obligațiilor din acest acord: lista subprocesatorilor, măsurile din Anexa B, termenele din Anexa D și, pentru o scanare anume, ce a rulat efectiv — avem jurnale și răspundem cu ele.
Acceptăm audituri și inspecții efectuate de tine sau de un auditor mandatat de tine, o dată pe an calendaristic și ori de câte ori a avut loc o breșă, cu un preaviz rezonabil și în limitele confidențialității datorate celorlalți clienți.
Răspundem la un chestionar scris de conformitate în cel mult 15 zile lucrătoare.
Se verifică în: lib/contentPages.ts — /despre-scanare, secțiunea 8; deploy/
Ce nu promite această clauză: Nu îți putem oferi acces fizic la centrul de date: serverul este la OVHcloud, iar auditul infrastructurii lor este al lor, nu al nostru. Pentru acel nivel îți dăm documentația publică a furnizorului și adresa exactă a locației, nu o promisiune pe care nu o controlăm.
11. Transferuri în afara Uniunii Europene
Prelucrarea are loc pe un singur server în București, România (UE). Baza de date, generarea PDF-urilor și capturile de ecran se fac pe aceeași mașină; nu folosim niciun serviciu extern de conversie sau de captură.
Un singur destinatar este în afara Uniunii: Telegram, folosit ca notificare internă către echipa noastră. Este declarat public la /subprocesatori și este singurul loc din sistem unde date personale ies din Uniune. Dacă acest transfer nu este acceptabil pentru tine, canalul poate fi oprit pentru contul tău înainte de semnare — spune-ne și scriem asta în contract.
Nu trimitem date către modele de limbaj sau alte servicii de inteligență artificială, în nicio parte a lanțului care produce un verdict.
Se verifică în: lib/telegram.ts, lib/pdf.ts, lib/contentPages.ts — /subprocesatori, „Ce NU folosim”
12. Ce nu acoperă acest acord
Datele tale de contact și cheia ta API. Pentru ele suntem operator, cu temei propriu și cu politica de confidențialitate ca document aplicabil.
Legalitatea instrucțiunii tale. Tu decizi ce site se scanează și pe ce temei; noi verificăm doar ce ne permite codul să verificăm — robots.txt, adresa, limitele de frecvență.
Conformitatea site-ului scanat. Raportul este o măsurătoare tehnică a suprafeței publice, nu un audit juridic și nu o opinie de avocat. Conținutul din spatele autentificării, checkoutului sau altor interacțiuni nu este acoperit de scanarea publică.
13. Forma, versiunea și semnarea (art. 28 alin. (8))
Acordul se încheie în scris, inclusiv în format electronic. Textul de pe această pagină este versiunea 2026-07-28; orice modificare a lui înseamnă o versiune nouă, cu dată nouă, iar acordurile deja semnate rămân sub versiunea sub care au fost semnate.
Cere versiunea semnabilă la oleg@megapromoting.com. Îți trimitem același text ca PDF, cu datele tale de identificare completate, semnat electronic de partea noastră.
Anexe
Anexele fac parte din acord. Sunt scrise ca tabele pentru că exact acestea sunt rândurile pe care un registru al activităților de prelucrare le cere (art. 30) și pe care le vei copia acolo.
Anexa A — Obiectul prelucrării
- Natura
- Colectare automată de dovezi observabile dintr-o pagină publică, stocare, structurare, generarea raportului.
- Scopul
- Pregătirea conformării cu Legea nr. 195/2024 pentru site-ul indicat de operator.
- Durata
- Pe durata contractului, iar pe categorii conform Anexei D.
- Tipul de date
- Adrese de cereri de rețea, nume și atribute de cookie-uri, antete HTTP, textul politicilor găsite, structura formularelor, capturi de ecran, adresa scanată, adresa IP a solicitantului.
- Categorii de persoane vizate
- Vizitatori și angajați identificabili din conținutul public al site-ului scanat; persoana care cere scanarea.
- Categorii speciale (art. 9)
- Nu sunt solicitate și nu sunt căutate. Pot apărea incidental doar dacă site-ul le publică el însuși.
Anexa B — Măsuri tehnice și organizatorice (art. 32)
Fiecare rând are fișierul care îl implementează. Ultimele două rânduri spun ce nu facem.
- Transport criptat
- TLS obligatoriu, certificat Let's Encrypt reînnoit automat. Conexiunile neprotejate sunt redirecționate.
- Izolarea execuției
- Fiecare scanare rulează într-un context Chromium curat, fără cookie-uri anterioare și fără sesiune autentificată. Profilul temporar este șters la închiderea sesiunii (packages/scanner/src/loader.ts).
- Protecție împotriva SSRF
- Destinația fiecărei scanări este verificată înainte de navigare; adresele interne și rezervate sunt respinse (packages/scanner/src/ssrf.ts).
- Politica de securitate a conținutului
- default-src 'self', fără surse externe de script, font sau imagine; trimisă de aplicație, într-un singur loc (next.config.ts — SECURITY_HEADERS).
- Chei API
- Stocate exclusiv ca amprentă sha256. Cheia brută există o singură dată, în răspunsul care a creat-o; nu este scrisă în jurnale, în email sau în baza de date (lib/apiKeys.ts).
- Adrese IP
- Pentru blocarea abuzului stocăm un cod ireversibil calculat din adresă, nu adresa în sine (lib/abuseBlock.ts — hashIp). Pentru limitarea frecvenței, adresa expiră în cel mult 15 minute.
- Limitarea încărcării
- O gazdă primește cel mult o scanare proaspătă la 15 minute; o adresă IP cel mult 5 scanări la 10 minute, cu o singură scanare în lucru. Generarea PDF are o coadă plafonată (lib/pdf.ts, lib/rateLimit.ts, lib/scanCache.ts).
- Dovada consimțământului
- Textul afișat, versiunea, limba și amprenta sha256 se stochează la fiecare consimțământ, iar textul este rezolvat pe server, niciodată preluat din cerere (lib/leadConsent.ts).
- Copii de siguranță
- Zilnice, cu ștergerea automată a arhivelor mai vechi de 14 zile (deploy/backup-db.sh).
- Neindexare
- Paginile de raport trimit „noindex”, iar /report/ este interzis în robots.txt (app/robots.ts).
- NU: criptare în repaus
- Baza de date nu este criptată pe disc. Declarat, nu omis.
- NU: detecție automată a breșelor
- Nu există un sistem de detectare; notificarea pornește de la momentul în care aflăm efectiv.
Anexa C — Subprocesatori autorizați
Aceeași listă ca la /subprocesatori, nu o a doua listă care ar putea să se abată de la ea. Acolo fiecare rând are și ce date primește, pe ce temei și ce nu a putut fi documentat.
- OVHcloud
- Găzduire, stocare și rețea. București, România (UE). Un singur server, fără CDN în față.
- Infobip
- Livrarea emailului cu raportul, atunci când l-ai cerut. Companie din Croația, stat membru al Uniunii Europene.
- MEGA PROMOTING — LiteLLM Gateway (Microsoft Azure OpenAI)
- Asistentul care explică raportul, doar dacă pornești discuția și bifezi acordul. Primește întrebările și raportul afișat, niciodată dovezile scanării și nicio dată despre persoană. Microsoft Azure, Suedia — rămâne în Uniunea Europeană.
- Telegram
- Notificare internă către echipa MEGA. În afara Uniunii Europene. Singurul transfer în afara UE din sistem.
- Hostinger
- Zona DNS pentru megapromoting.com. Nu primește date de la aplicație.
- Let's Encrypt (ISRG)
- Certificatul TLS. Primește numele de domeniu la fiecare emitere. Nu primește date personale.
- Google Fonts
- Dependență de construire. Fișierele sunt descărcate la build și servite de pe serverul nostru; browserul vizitatorului nu contactează Google.
Anexa D — Termene de ștergere
Copiate din lib/retention.ts, cu aceeași distincție ca pe pagina publică de retenție: „implementat” înseamnă că ștergerea o face codul sau o sarcină cron, fără intervenție umană. Restul spune exact în ce stadiu este.
- Probele scanării (capturi, jurnalul cererilor)
- 7 zile — implementat, sarcină cron zilnică (deploy/cleanup-tmp.sh).
- Capturi și profiluri temporare rămase după o oprire forțată
- 1 zi — implementat, aceeași sarcină cron.
- Adresa IP pentru limitarea cererilor
- Maximum 15 minute — implementat, în aplicație.
- Codul ireversibil al unei conexiuni blocate
- Cel mult 7 zile de la ultimul incident — implementat.
- Rezultatul complet al scanării
- 90 de zile, apoi rândul rămâne doar cu adresa, scorul, verdictul și data — scris și testat în cod, sarcina cron încă neactivată pe server. Până atunci ștergem la cerere, în cel mult 30 de zile.
- Scanările neconcludente
- 30 de zile, rândul se șterge întreg — scris în cod, încă neactivat pe server.
- Datele de contact ale operatorului
- Necesită decizia operatorului nostru; mecanismul refuză deliberat să șteargă până când termenul este stabilit. Până atunci: cât durează relația comercială și la cerere, în cel mult 30 de zile.
- Copiile de siguranță
- 14 zile — implementat (deploy/backup-db.sh).
- Notificările interne pe Telegram
- Fără termen automat. Rămân în istoricul conversației până la ștergerea manuală; la o cerere de ștergere ștergem și mesajul.