Sobes.tech
Middle

Jak můžete zabezpečit aplikaci před potenciálně nebezpečnými vstupy ze strany klienta?

sobes.tech AI

Odpověď od AI

Pro ochranu před nebezpečnými vstupy:

  1. Sanitizace dat: Vyčistěte vstup uživatele od potenciálně škodlivého kódu (HTML, JavaScript) před jeho zobrazením na stránce.

    // Příklad sanitizace pomocí DOMPurify
    const cleanHtml = DOMPurify.sanitize(userInput);
    
  2. Escapování výstupu: Převádějte speciální znaky na jejich bezpečné ekvivalenty před jejich zobrazením na stránce, aby nedošlo k vykonání kódu.

    <!-- Příklad escapování -->
    <p id="output"></p>
    <script>
      const userInput = "<script>alert('XSS')</script>";
      document.getElementById('output').textContent = userInput; // Použití textContent pro bezpečný výstup
    </script>
    
  3. Politika zabezpečení obsahu (CSP): Nakonfigurujte hlavičku HTTP Content-Security-Policy, aby omezila zdroje obsahu, které mohou být načteny a spuštěny prohlížečem.

    Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline';
    
  4. Validace dat: Ověřte vstup uživatele, zda odpovídá očekávanému formátu, typu dat a délce, jak na straně klienta, tak na straně serveru.

    // Příklad validace na straně klienta
    if (inputField.value.length > 100) {
      // Chyba validace
    }
    
  5. Použití bezpečných API a knihoven: Upřednostněte vestavěná API a důvěryhodné knihovny pro práci s DOM, zpracování dat a zabránění přímému použití innerHTML s nenasanitizovanými daty.

  6. Omezení práv uživatele: Uplatněte princip minimálních oprávnění, aby uživatelské rozhraní neumožňovalo provádět potenciálně nebezpečné akce bez odpovídající autorizace.

  7. HTTPS: Vždy používejte HTTPS pro šifrování dat mezi klientem a serverem.

  8. Ochrana proti CSRF (Cross-Site Request Forgery): Používejte CSRF tokeny k ověření pravosti požadavků odeslaných z klienta.

    // Příklad odeslání CSRF tokenu
    fetch('/api/update', {
      method: 'POST',
      headers: {
        'X-CSRF-Token': csrfToken
      },
      body: JSON.stringify(data)
    });
    
  9. HttpOnly příznak pro cookies: Nastavte příznak HttpOnly pro relace cookies, aby k nim nebylo možné přistupovat z JavaScriptu.

  10. Pravidelné aktualizace závislostí: Udržujte používané knihovny a frameworky aktuální, aby byly odstraněny známé zranitelnosti.