Cum poți proteja o aplicație de intrări potențial periculoase din partea clientului?
sobes.tech AI
Răspuns de la AI
Pentru protecția împotriva introducerii periculoase:
-
Sanitizarea datelor: Curățați intrarea utilizatorului de cod potențial dăunător (HTML, JavaScript) înainte de a o afișa pe pagină.
// Exemplu de sanitizare cu DOMPurify const cleanHtml = DOMPurify.sanitize(userInput); -
Escaparea ieșirii: Convertiți caracterele speciale în echivalentele lor sigure înainte de a le afișa pe pagină pentru a preveni executarea de cod.
<!-- Exemplu de escapare --> <p id="output"></p> <script> const userInput = "<script>alert('XSS')</script>"; document.getElementById('output').textContent = userInput; // Utilizarea textContent pentru o ieșire sigură </script> -
Politica de Securitate a Conținutului (CSP): Configurați antetul HTTP
Content-Security-Policypentru a limita sursele de conținut care pot fi încărcate și executate de browser.Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline'; -
Validarea datelor: Verificați intrarea utilizatorului pentru conformitate cu formatul așteptat, tipul de date și lungimea, atât pe client, cât și pe server.
// Exemplu de validare pe partea client if (inputField.value.length > 100) { // Eroare de validare } -
Utilizarea API-urilor și bibliotecilor sigure: Preferați API-urile încorporate și bibliotecile de încredere pentru a lucra cu DOM, a procesa date și a preveni utilizarea directă a
innerHTMLcu date nesanitizate. -
Limitarea drepturilor utilizatorului: Aplicați principiul privilegiilor minime, astfel încât interfața utilizatorului să nu permită efectuarea de acțiuni potențial periculoase fără autorizare corespunzătoare.
-
HTTPS: Utilizați întotdeauna HTTPS pentru criptarea datelor între client și server.
-
Protecție împotriva CSRF (Cross-Site Request Forgery): Utilizați token-uri CSRF pentru a verifica autenticitatea cererilor trimise de client.
// Exemplu de trimitere a unui token CSRF fetch('/api/update', { method: 'POST', headers: { 'X-CSRF-Token': csrfToken }, body: JSON.stringify(data) }); -
Flag HttpOnly pentru cookie-uri: Setați flag-ul HttpOnly pentru cookie-urile de sesiune pentru a preveni accesul la acestea din JavaScript.
-
Actualizări regulate ale dependențelor: Mențineți bibliotecile și framework-urile utilizate actualizate pentru a elimina vulnerabilitățile cunoscute.