Вразливості браузерів 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:
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.