> For the complete documentation index, see [llms.txt](https://notes.kraken-security.ru/kraken/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.kraken-security.ru/kraken/krupicy-znanii/obshie-stati/css-v-ib.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
