Skip to main content
Практика завдань

Вразливості браузерів OWASP

XSS (Cross-Site Scripting)

XSS-атаки — це атаки, під час яких зловмисник впроваджує шкідливий JavaScript-код на веб-сторінку, щоб виконати цей код у браузері жертви. Ця вразливість може призвести до крадіжки сесій, особистих даних або довільних дій від імені користувача.

Приклад XSS-атаки

Зловмисник створює посилання зі шкідливим JavaScript, надсилає його жертві електронною поштою. Коли жертва натискає на посилання, JS-код виконується у їхньому браузері, що дозволяє вкрасти облікові дані, сесії або виконати інші шкідливі дії.

Методи захисту від XSS-атак

  • Content Security Policy (CSP): Створіть список дозволених джерел контенту, обмежуючи завантаження лише з довірених доменів.
  • Не використовуйте eval() та dangerouslySetInnerHTML: Ці методи дозволяють виконувати довільний код, відкриваючи вразливості.
  • HttpOnly cookies: Встановіть куки з атрибутом HttpOnly, щоб запобігти доступу до куків через JavaScript.
  • Санітизація вводу: Очищайте вхідні дані від шкідливих скриптів за допомогою екранування, щоб запобігти їх виконанню.

Типи XSS

  • Stored XSS: Шкідливий код зберігається в базі даних і виконується на сторінці при наступному запиті.
  • Reflected XSS: Скрипт не зберігається, але передається через URL або параметри запиту. Коли сервер повертає сторінку з цим скриптом, він виконується у браузері жертви.
  • DOM-based XSS: Шкідливий скрипт впроваджується в клієнтський JavaScript-код через вразливості DOM, без змін на сервері.

CSRF (Cross-Site Request Forgery)

CSRF — це атака, під час якої зловмисник змушує користувача виконати небажаний запит від їхнього імені. Це можливо, оскільки браузер автоматично надсилає куки та інші дані аутентифікації з запитами, навіть якщо запит був ініційований з зовнішнього джерела.

Методи захисту від CSRF-атак

  • Використання CSRF-токенів: Генеруйте унікальний токен для кожної сесії користувача. Цей токен повинен бути включений у форму або запит і перевірений сервером.
  • Використання HTTPS: Захищені з'єднання запобігають перехопленню та модифікації даних.
  • SameSite Cookies: Встановіть атрибут SameSite для куків, щоб запобігти їх надсиланню з крос-доменними запитами.

Використання застарілих npm-пакетів

Використання застарілих або непідтримуваних пакетів у npm може призвести до вразливостей у вашому додатку, оскільки такі пакети можуть містити відомі помилки або вразливості. Наприклад, старі версії пакетів можуть не мати оновлень безпеки.

Методи захисту

  • Регулярно оновлюйте пакети та залежності.
  • Використовуйте інструменти, такі як npm audit, для перевірки пакетів на вразливості.
  • Віддавайте перевагу використанню підтримуваних і активно оновлюваних пакетів.

SQL/NoSQL ін'єкції

SQL-ін'єкції — це атаки, під час яких зловмисник вставляє або модифікує SQL-запити, щоб отримати доступ до даних, змінити їх або виконати довільні дії з базою даних.

NoSQL-ін'єкції — подібні атаки, але для NoSQL баз даних, наприклад, MongoDB.

Методи захисту від SQL/NoSQL ін'єкцій:

  • Використання підготовлених запитів: Ці запити забезпечують безпечну взаємодію з базою даних і запобігають ін'єкціям.
  • Санітизація вводу: Усі дані, отримані від користувачів, повинні бути перевірені та очищені.
  • ORM (Object-Relational Mapping): Використовуйте ORM-фреймворки, які автоматично захищають від ін'єкцій.

Man-in-the-Middle (MITM)

Атака MITM передбачає перехоплення, підробку або прослуховування трафіку між клієнтом і сервером. Зловмисник може отримати доступ до конфіденційної інформації або змінити дані під час передачі.

Методи захисту від MITM:

  • Використання HTTPS: HTTPS захищає дані за допомогою TLS, роблячи дані недоступними для перехоплення або модифікації.
  • SSL/TLS сертифікати: Переконайтеся, що ви використовуєте дійсні сертифікати для встановлення захищених з'єднань.
  • HSTS (HTTP Strict Transport Security): Цей механізм змушує браузери використовувати лише HTTPS для доступу до вашого сайту.

Clickjacking - Атака на заміну кліків

Clickjacking — це атака, під час якої зловмисник накладає приховані елементи інтерфейсу на видимі, змушуючи користувача взаємодіяти з ними, не усвідомлюючи цього. Це може призвести до небажаних дій (наприклад, натискання кнопки "підтвердити платіж").

Методи захисту від Clickjacking:

  • X-Frame-Options: Встановіть заголовок X-Frame-Options на DENY або SAMEORIGIN, щоб запобігти вбудовуванню вашого сайту в iframe.
  • Content-Security-Policy (CSP): Використовуйте CSP, щоб обмежити джерела контенту та запобігти вбудовуванню в фрейми.
  • Впровадження захисту від кліків: Використовуйте механізми, такі як виклик-відповідь, щоб захистити від несанкціонованих дій.

Контент

XSS (Cross-Site Scripting) XSS Attack Example XSS Attack Protection Methods XSS Types CSRF (Cross-Site Request Forgery) CSRF Attack Protection Methods Using Deprecated npm Packages SQL/NoSQL Injections SQL/NoSQL Injection Protection Methods: Man-in-the-Middle (MITM) MITM Protection Methods: Clickjacking - Click Substitution Attack Clickjacking Protection Methods:

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань