Sobes.tech
Middle

Kā jūs varat nodrošināt lietojumprogrammas drošību pret potenciāli bīstamām ievadēm no klienta puses?

sobes.tech AI

Atbilde no AI

Aizsardzība pret bīstamu ievadi:

  1. Datu sanitizācija: Lietotāja ievades attīrīšana no potenciāli kaitīga koda (HTML, JavaScript) pirms tās parādīšanas lapā.

    // Piemērs ar DOMPurify
    const cleanHtml = DOMPurify.sanitize(userInput);
    
  2. Izvades ekrānošana: Īpašo rakstzīmju pārvēršana to drošās ekvivalentās pirms izvades lapā, lai novērstu koda izpildi.

    <!-- Piemērs ar ekrānošanu -->
    <p id="output"></p>
    <script>
      const userInput = "<script>alert('XSS')</script>";
      document.getElementById('output').textContent = userInput; // Izmantojot textContent drošai izvadei
    </script>
    
  3. Saturs drošības politika (CSP): HTTP galvenes Content-Security-Policy iestatīšana, ierobežojot satura avotus, kuri var tikt ielādēti un izpildīti pārlūkprogrammā.

    Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline';
    
  4. Datu validācija: Lietotāja ievades pārbaude atbilstoši gaidītajam formātam, datu tipam un garumam gan klienta, gan servera pusē.

    // Piemērs ar klienta validāciju
    if (inputField.value.length > 100) {
      // Validācijas kļūda
    }
    
  5. Drošu API un bibliotēku izmantošana: Prioritāte dodama iebūvētiem API un uzticamiem bibliotēkām darbam ar DOM, datu apstrādi un innerHTML ar nepatikrītiem datiem.

  6. Lietotāja tiesību ierobežošana: Pielietot minimālo privilēģiju principu, kad lietotāja saskarne neļauj veikt potenciāli bīstamas darbības bez atbilstošas autorizācijas.

  7. HTTPS: Vienmēr lietot HTTPS datu šifrēšanai starp klientu un serveri.

  8. Aizsardzība pret CSRF (Cross-Site Request Forgery): Izmantot CSRF žetonus pieprasījumu autentiskuma pārbaudei.

    // Piemērs ar CSRF žetona sūtīšanu
    fetch('/api/update', {
      method: 'POST',
      headers: {
        'X-CSRF-Token': csrfToken
      },
      body: JSON.stringify(data)
    });
    
  9. HttpOnly karodziņš sīkdatnēm: Iestatīt HttpOnly karodziņu sesijas sīkdatnēm, lai novērstu piekļuvi no JavaScript.

  10. Regulāras atjaunināšanas atkarības: Uzturēt izmantotās bibliotēkas un ietvarus aktuālus, lai novērstu zināmas ievainojamības.