# CSS в ИБ

CSS сам по себе не источник уязвимостей в веб-приложениях. Но существуют способы, где язык стилей — часть стратегии злоумышленников.&#x20;

1. Встроенный или внешний CSS может быть модифицирован для включения вредоносного кода. Это происходит, когда разработчики не фильтруют пользовательский ввод, который попадает в стили. В этом сценарии злоумышленники могут попытаться внедрить в CSS свои директивы.
2. Когда веб-сайты позволяют загрузку CSS-файлов с внешних источников, это может быть использовано для запуска атак на уровне протокола, таких как DNS-ребайндинг или атаки по промежуточным звеньям.
3. Clickjacking: CSS может использовать для маскировки вредоносных элементов интерфейса, делая их невидимыми или замаскированными.
4. Самый распространенный пример — это фишинг. Злоумышленники просто копируют известные ресурсы, повышая вероятность обмана и кражи конфиденциальной информации.
5. В CSS есть возможность подключения шрифтов или других ресурсов с использованием URL. Потенциально это можно использовать для загрузки вредоносного контента или отслеживания пользователей.

### Что можно сделать, чтобы обезопасить веб-приложение в контексте CSS? <br>

1. Включить CSP в заголовки ответов сервера. Это ограничит ресурсы (скрипты, стили, изображения и т. д.), которые могут загружаться на страницу. По сути это главный шаг против инъекций.
2. Фильтровать и санировать пользовательский ввод. Это тоже поможет предотвратить внедрение вредоносных данных и CSS-инъекции.
3. Использовать методологии BEM (Блок, Элемент, Модификатор) и CSS модули, компонентные подходы (например, в React с styled-components или Emotion). Это поможет избежать переопределения стилей и обеспечить модульность и изолированность.
4. Сократить использование inline-стилей, так как это потенциальный вектор для атак.
5. Использовать HTTPS, чтобы исключить возможность для [MITM](https://notes.kraken-security.ru/kraken/krupicy-znanii/ob-atake-mitm).
6. Проверять файлы CSS, загружаемые с серверов или CDN. Это поможет заметить подмену содержимого или добавление вредоносного кода.
7. Обновить браузеры и инструменты. Ну это база.&#x20;
8. Ограничить доступ на сервере таким образом, чтобы только авторизованные пользователи могли загружать или изменять CSS и другие ресурсы сайта.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://notes.kraken-security.ru/kraken/krupicy-znanii/obshie-stati/css-v-ib.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
