Sobes.tech
Middle

Kako možete zaštititi aplikaciju od potencijalno opasnog unosa sa strane klijenta?

sobes.tech АИ

Одговор од АИ

Заштита од опасног уноса:

  1. Санација података: Чишћење корисничког уноса од потенцијално штетног кода (HTML, JavaScript) пре приказивања на страници.

    // Пример санације помоћу DOMPurify
    const cleanHtml = DOMPurify.sanitize(userInput);
    
  2. Екранирање излаза: Претварање посебних симбола у њихове безбедне еквиваленте пре приказа на страници како би се спречило извршавање кода.

    <!-- Пример екранирања -->
    <p id="output"></p>
    <script>
      const userInput = "<script>alert('XSS')</script>";
      document.getElementById('output').textContent = userInput; // Коришћење textContent за безбедан излаз
    </script>
    
  3. Политика безбедности садржаја (CSP): Подешавање HTTP заглавља Content-Security-Policy за ограничење извора садржаја који могу бити учитани и извршени у прегледачу.

    Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline';
    
  4. Валидација података: Провера корисничког уноса у складу са очекиваним форматом, типом података и дужином како на клијенту, тако и на серверу.

    // Пример клијентске валидације
    if (inputField.value.length > 100) {
      // Грешка у валидацији
    }
    
  5. Користите безбедне API и библиотеке: Предност дајте уграђеним API-јевима и ауторитетним библиотекама за рад са DOM-ом, обрадом података и спречавањем директне употребе innerHTML са несанитизованим подацима.

  6. Ограничите права корисника: Примењујте принцип најмањих привилегија, када кориснички интерфејс не дозвољава извршавање потенцијално опасних радњи без одговарајуће ауторизације.

  7. HTTPS: Увек користите HTTPS за шифровање података између клијента и сервера.

  8. Заштита од CSRF (Cross-Site Request Forgery): Користите CSRF токене за проверу аутентичности захтева послатих са клијента.

    // Пример слања CSRF токена
    fetch('/api/update', {
      method: 'POST',
      headers: {
        'X-CSRF-Token': csrfToken
      },
      body: JSON.stringify(data)
    });
    
  9. HttpOnly флаг за колачиће: Подесите HttpOnly флаг за сесијске колачиће како бисте спречили приступ њима из JavaScript-а.

  10. Редовно ажурирање зависности: Одржавајте коришћене библиотеке и оквире у актуелном стању како бисте уклонили познате утичнице.