Asistenții de codare bazați pe inteligență artificială, precum Cursor, au schimbat radical viteza cu care putem construi aplicații. În doar câteva minute, poți trece de la o simplă idee la un produs funcțional, gata de livrare în producție.
I-ai cerut un sistem de autentificare și o secțiune de recenzii sau comentarii? AI-ul ți le construiește pe ambele instant. Totul arată impecabil, aplicația rulează, iar interfața răspunde prompt. Însă există o problemă majoră pe care majoritatea creatorilor o ignoră: AI-ul optimizează pentru funcționalitate, nu pentru securitate.
În clipul de mai sus am făcut un experiment practic pe canalul nostru de YouTube, ca să arătăm cât de ușor poate fi compromisă o astfel de aplicație creată cu AI.
Cum se fură un token prin Stored XSS
Atunci când ceri unui asistent AI să îți creeze rapid un modul de comentarii sau recenzii, acesta va prioritiza afișarea datelor pe ecran. Dacă codul generat nu include mecanisme de sanitizare și escapare a datelor introduse de utilizatori, aplicația devine vulnerabilă la atacuri de tip Stored XSS (Cross-Site Scripting).
Cum funcționează atacul
Scenariul este surprinzător de simplu:
- Atacul invizibil. Un atacator nu trebuie să spargă baza de date. Este suficient să lase o recenzie sau un comentariu aparent banal, care conține un tag HTML modificat.
- Execuția codului. Atunci când un alt utilizator — sau chiar un administrator — deschide pagina, browserul interpretează acel conținut ca marcaj, nu ca text, și rulează scriptul ascuns în el.
- Compromiterea contului. Scriptul poate extrage instantaneu token-ul de sesiune sau cookie-urile de autentificare din browser și le trimite către serverul atacatorului, fără ca victima să bănuiască ceva.
Pasul cu pasul, pe o aplicație reală livrată în producție, îl arătăm în clipul de mai sus.
De ce uneltele AI nu sunt suficiente pentru producție
AI-ul este un accelerator extraordinar pentru dezvoltare, dar nu înțelege contextul de securitate al afacerii tale. Dacă instrucțiunea ta inițială a fost doar „fă-mi un login și o secțiune de recenzii”, AI-ul nu va adăuga de la sine măsuri complexe de securitate.
Principalele riscuri când te bazezi 100% pe cod generat automat:
- Lipsește validarea riguroasă a datelor de intrare (input validation).
- Output-ul este randat ca HTML brut, fără sanitizare.
- Token-urile de autentificare sunt adesea stocate nesigur — de exemplu în
localStorage, ceea ce le face vulnerabile la scripturi XSS.
Viteza de dezvoltare e crucială azi, dar o breșă de securitate îți poate distruge reputația într-o secundă.
Cum securizăm aplicațiile la guwAPI
La guwAPI folosim tehnologia la maximum, dar aplicăm un filtru strict de inginerie și securitate peste orice linie de cod. Pentru a preveni atacurile XSS și furtul de token-uri, urmăm câteva reguli esențiale.
Cum prevenim asta
1. Sanitizarea strictă a datelor. Nicio informație introdusă de utilizator nu este afișată fără a fi filtrată și escapată. Randarea ca text, nu ca HTML, este linia de apărare implicită:
// Riscant: randezi HTML brut primit de la utilizator
<div dangerouslySetInnerHTML={{ __html: review.body }} />
// Sigur: randezi ca text — framework-ul escapează automat
<div>{review.body}</div>2. Cookie-uri HttpOnly. Stocăm token-urile în cookie-uri securizate, inaccesibile pentru JavaScript din browser — deci un XSS nu le poate citi:
res.cookie("session", token, {
httpOnly: true, // inaccesibil din document.cookie
secure: true, // doar prin HTTPS
sameSite: "strict",
});3. Politici CSP (Content Security Policy). Configurăm headere de securitate care blochează executarea scripturilor neautorizate, chiar dacă ceva ar scăpa de sanitizare:
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'