Sobes.tech
Middle

Kuidas saate kaitsta rakendust potentsiaalselt ohtlike sisendite eest kliendi poolt?

sobes.tech AI

Vastus AI-lt

Kaitse ohtliku sisendi vastu:

  1. Andmete sanitiseerimine: Kasutaja sisendi puhastamine potentsiaalselt kahjuliku koodi (HTML, JavaScript) eest enne selle kuvamist lehel.

    // Näide DOMPurify abil sanitiseerimisest
    const cleanHtml = DOMPurify.sanitize(userInput);
    
  2. Väljundi ekraanimine: Erimärkide muutmine nende ohuteks ekvivalentideks enne lehele kuvamist, et vältida koodi täitmist.

    <!-- Näide ekraanimisest -->
    <p id="output"></p>
    <script>
      const userInput = "<script>alert('XSS')</script>";
      document.getElementById('output').textContent = userInput; // Kasutades textContent ohutuks väljundiks
    </script>
    
  3. Sisu turvapoliitika (CSP): HTTP päise Content-Security-Policy seadistamine, piirates sisu allikaid, mida saab laadida ja käivitada brauseris.

    Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline';
    
  4. Andmete valideerimine: Kasutaja sisendi kontrollimine vastavalt oodatud formaadile, andmetüübile ja pikkusele nii kliendi- kui ka serveripoolselt.

    // Näide kliendi valideerimisest
    if (inputField.value.length > 100) {
      // Viga valideerimisel
    }
    
  5. Turvaliste API-de ja teekide kasutamine: Eelistada sisseehitatud API-sid ja autoriteetseid teeke DOM-i töötlemiseks, andmete töötlemiseks ning innerHTML kasutamise vältimiseks mittehinnatud andmetega.

  6. Kasutaja õiguste piiramine: Rakendada minimaalsete privileegide põhimõtet, kui kasutajaliides ei luba potentsiaalselt ohtlikke tegevusi ilma vastava autoriseerimiseta.

  7. HTTPS: Kasutada alati HTTPS-i andmete krüpteerimiseks kliendi ja serveri vahel.

  8. CSRF kaitse: Kasutada CSRF-tokeneid päringute autentsuse kontrollimiseks.

    // Näide CSRF-tokeni saatmisest
    fetch('/api/update', {
      method: 'POST',
      headers: {
        'X-CSRF-Token': csrfToken
      },
      body: JSON.stringify(data)
    });
    
  9. HttpOnly sildi kasutamine küpsistel: Seada HttpOnly silt sessiooniküpsistele, et takistada nende ligipääsu JavaScripti kaudu.

  10. Sõltuvuste regulaarne uuendamine: Hoida kasutatavaid teeke ja raamistikke ajakohasena, et kõrvaldada teadaolevad haavatavused.