Sobes.tech
Middle

Ako môžete zabezpečiť aplikáciu pred potenciálne nebezpečnými vstupmi zo strany klienta?

sobes.tech AI

Odpoveď od AI

Ochrana pred nebezpečným vstupom:

  1. Sanitizácia údajov: Čistenie používateľského vstupu od potenciálne škodlivého kódu (HTML, JavaScript) pred zobrazením na stránke.

    // Príklad sanitizácie pomocou DOMPurify
    const cleanHtml = DOMPurify.sanitize(userInput);
    
  2. Escaping výstupu: Prevod špeciálnych znakov na ich bezpečné ekvivalenty pred výstupom na stránku, aby sa zabránilo vykonaniu kódu.

    <!-- Príklad escapingu -->
    <p id="output"></p>
    <script>
      const userInput = "<script>alert('XSS')</script>";
      document.getElementById('output').textContent = userInput; // Použitie textContent pre bezpečný výstup
    </script>
    
  3. Content Security Policy (CSP): Nastavenie HTTP hlavičky Content-Security-Policy na obmedzenie zdrojov obsahu, ktoré môžu byť načítané a vykonané prehliadačom.

    Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline';
    
  4. Validácia údajov: Kontrola používateľského vstupu na zhodu s očakávaným formátom, typom údajov a dĺžkou ako na klientovi, tak na serveri.

    // Príklad klientskej validácie
    if (inputField.value.length > 100) {
      // Chyba validácie
    }
    
  5. Používanie bezpečných API a knižníc: Uprednostňovanie vstavaných API a dôveryhodných knižníc na prácu s DOM, spracovanie údajov a prevenciu priameho používania innerHTML s nebezpečnými údajmi.

  6. Obmedzenie práv používateľa: Uplatňovanie princípu minimálnych privilégií, keď používateľské rozhranie neumožňuje vykonávanie potenciálne nebezpečných akcií bez príslušnej autorizácie.

  7. HTTPS: Vždy používajte HTTPS na šifrovanie údajov medzi klientom a serverom.

  8. Ochrana pred CSRF (Cross-Site Request Forgery): Použitie CSRF tokenov na overenie autenticity požiadaviek odoslaných z klienta.

    // Príklad odoslania CSRF tokenu
    fetch('/api/update', {
      method: 'POST',
      headers: {
        'X-CSRF-Token': csrfToken
      },
      body: JSON.stringify(data)
    });
    
  9. HttpOnly flag pre cookie: Nastavenie HttpOnly flagu pre reléové cookie, aby sa zabránilo prístupu k nim z JavaScriptu.

  10. Pravidelné aktualizácie závislostí: Udržiavanie používaných knižníc a rámcov aktuálnych na odstránenie známych zraniteľností.