Sobes.tech
Middle

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:

  1. 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);
    
  2. 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>
    
  3. Politica de Securitate a Conținutului (CSP): Configurați antetul HTTP Content-Security-Policy pentru 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';
    
  4. 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
    }
    
  5. 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 innerHTML cu date nesanitizate.

  6. 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.

  7. HTTPS: Utilizați întotdeauna HTTPS pentru criptarea datelor între client și server.

  8. 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)
    });
    
  9. Flag HttpOnly pentru cookie-uri: Setați flag-ul HttpOnly pentru cookie-urile de sesiune pentru a preveni accesul la acestea din JavaScript.

  10. Actualizări regulate ale dependențelor: Mențineți bibliotecile și framework-urile utilizate actualizate pentru a elimina vulnerabilitățile cunoscute.