PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Как защитить уязвимость чтобы она эксплуатировалась но злоумышленник не мог ничего сделать?

DOM и браузер

Чтобы уязвимость эксплуатировалась, но не наносила вреда, применяют глубокую защиту (defense in depth): даже при успешной эксплуатации ограничивают ущерб через минимальные привилегии, изоляцию, короткие токены и мониторинг.

Идея — минимизировать ущерб

Нельзя предотвратить 100% атак, поэтому строят так, чтобы успешная эксплуатация давала минимум:

Принцип наименьших привилегий

Токены/аккаунты с минимальными правами — украли токен только на чтение → нельзя изменять/удалять:

scope: 'read:public' → эксплуатация не даёт доступа к личным данным

Короткий срок жизни токенов

Украденный access token быстро истекает → окно использования мало.

Изоляция и sandbox

  • Sandbox (iframe с sandbox, Web Workers) — вредоносный код изолирован.
  • CSP — даже внедрённый скрипт не сможет слать данные (connect-src) или выполниться.

HttpOnly cookie

Токен недоступен JS → XSS не украдёт его.

Мониторинг и отзыв

Детектировать аномалии, быстро отзывать скомпрометированные токены (ротация, чёрный список).

Rate limiting

Ограничить частоту → массовая эксплуатация затруднена.

Defense in depth

Много слоёв защиты: если один пробит, другие ограничивают ущерб. Даже при эксплуатации злоумышленник упирается в минимальные права, изоляцию, короткие токены и мониторинг.

Коротко для собеседования

Чтобы эксплуатация не наносила вреда — глубокая защита (defense in depth): принцип наименьших привилегий (минимальный scope токенов), короткий срок жизни, изоляция (CSP connect-src, sandbox), HttpOnly (XSS не украдёт токен), мониторинг и быстрый отзыв, rate limiting. Много слоёв: даже при пробитии одного ущерб ограничен.

Другие вопросы раздела