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:
-
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); -
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> -
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'; -
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 } -
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í
innerHTMLs nenasanitizovanými daty. -
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.
-
HTTPS: Vždy používejte HTTPS pro šifrování dat mezi klientem a serverem.
-
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) }); -
HttpOnly příznak pro cookies: Nastavte příznak HttpOnly pro relace cookies, aby k nim nebylo možné přistupovat z JavaScriptu.
-
Pravidelné aktualizace závislostí: Udržujte používané knihovny a frameworky aktuální, aby byly odstraněny známé zranitelnosti.