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:
-
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); -
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> -
Content Security Policy (CSP): Nastavenie HTTP hlavičky
Content-Security-Policyna 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'; -
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 } -
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
innerHTMLs nebezpečnými údajmi. -
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.
-
HTTPS: Vždy používajte HTTPS na šifrovanie údajov medzi klientom a serverom.
-
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) }); -
HttpOnly flag pre cookie: Nastavenie HttpOnly flagu pre reléové cookie, aby sa zabránilo prístupu k nim z JavaScriptu.
-
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í.