Sobes.tech
Middle

Kaip galite apsaugoti programą nuo potencialiai pavojingų įvedimų iš kliento pusės?

sobes.tech AI

Atsakymas iš AI

Apsauga nuo pavojingo įvedimo:

  1. Duomenų sanitarizavimas: Naudotojo įvesties valymas nuo potencialiai kenksmingo kodo (HTML, JavaScript) prieš jį rodant puslapyje.

    // Pavyzdys su DOMPurify
    const cleanHtml = DOMPurify.sanitize(userInput);
    
  2. Išvesties ekranuotas: Specialių simbolių pavertimas jų saugiais ekvivalentais prieš juos išvedant į puslapį, siekiant išvengti kodo vykdymo.

    <!-- Pavyzdys su ekranuotu išvedimu -->
    <p id="output"></p>
    <script>
      const userInput = "<script>alert('XSS')</script>";
      document.getElementById('output').textContent = userInput; // Naudojant textContent saugiam išvedimui
    </script>
    
  3. Turinio saugumo politika (CSP): HTTP antraštės Content-Security-Policy nustatymas, apribojant turinio šaltinius, kurie gali būti įkelti ir vykdomi naršyklėje.

    Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline';
    
  4. Duomenų validavimas: Vartotojo įvesties patikrinimas pagal tikėtiną formatą, duomenų tipą ir ilgį tiek kliento, tiek serverio pusėje.

    // Pavyzdys su kliento validacija
    if (inputField.value.length > 100) {
      // Validacijos klaida
    }
    
  5. Naudokite saugius API ir bibliotekas: Pirmenybę teikite įmontuotiems API ir patikimiems bibliotekų sprendimams darbui su DOM, duomenų apdorojimui ir innerHTML naudojimui su nepatikrintais duomenimis.

  6. Vartotojo teisių apribojimas: Taikyti mažiausių privilegijų principą, kai vartotojo sąsaja neleidžia vykdyti potencialiai pavojingų veiksmų be atitinkamos autorizacijos.

  7. HTTPS: Visada naudokite HTTPS duomenų šifravimui tarp kliento ir serverio.

  8. Apsauga nuo CSRF (Cross-Site Request Forgery): Naudokite CSRF žetonus užklausų autentiškumui patikrinti.

    // Pavyzdys su CSRF žetono siuntimu
    fetch('/api/update', {
      method: 'POST',
      headers: {
        'X-CSRF-Token': csrfToken
      },
      body: JSON.stringify(data)
    });
    
  9. HttpOnly žymeklis cookies: Nustatyti HttpOnly žymeklį sesijos cookies, siekiant užkirsti kelią jų pasiekiamumui iš JavaScript.

  10. Nuolatinis priklausomybių atnaujinimas: Laikykite naudojamas bibliotekas ir karkasus atnaujintus, kad pašalintumėte žinomus pažeidžiamumus.