# Clickjacking

## 1. Введение:

Clickjacking - это атака на основе интерфейса, в ходе которой пользователя обманом заставляют кликнуть на наложенный на скрытый сайт контент, нажав на некоторый контент на сайте-обманке.

Рассмотрим следующий пример: Веб-пользователь заходит на ложный веб-сайт и нажимает на кнопку, чтобы принять политику cookie. Неосознанно на этот ложный веб-сайт накладывается кнопка, которая, например, удаляет их двухфакторный аутентификатор с уязвимого веб-сайта. Эта атака отличается от CSRF-атаки тем, что от пользователя требуется выполнить действие, например, нажать на кнопку, в то время как CSRF-атака зависит от подделки всего запроса без ведома или участия пользователя.

## 2. Защитные техники:

Эффективных способов защиты от кликджекинга на стороне клиента не существует. Поэтому необходимо правильно настроить серверную часть, чтобы наш сайт НИКОГДА не стал "приманкой" для подобных атак.

### 2.1. Реализация X-Frame-Options или CSP(frame-ancestors):

Заголовок HTTP-ответа `X-Frame-Options` может использоваться для указания того, разрешено ли браузеру отображать страницу в <фрейме> или . Сайты могут использовать этот параметр для предотвращения атак Clickjacking, гарантируя, что их содержимое не будет встраиваться в другие сайты. Установите заголовок `X-Frame-Options` для всех ответов, содержащих HTML-контент. Вот возможные значения опций:

* DENY: запрещает любому домену обрамлять содержимое. Настройка "DENY" рекомендуется, если только не выявлена особая необходимость в обрамлении.
* SAMEORIGIN: разрешает обрамлять содержимое только текущего сайта.
* ALLOW-FROM URI: разрешает указанному 'URI' обрамлять эту страницу.

### 2.2. Использование политики безопасности содержимого (CSP):

Политика безопасности содержимого (CSP) - это механизм обнаружения и предотвращения, который обеспечивает защиту от таких атак, как XSS и clickjacking. CSP обычно реализуется на веб-сервере в виде заголовка вида: `Content-Security-Policy: policy` где policy - это строка директив политики, разделенных точками с запятой. CSP предоставляет браузеру клиента информацию о разрешенных источниках веб-ресурсов, которую браузер может применить для обнаружения и перехвата вредоносного поведения.

Рекомендуемая защита от кликджекинга - это включение frame-ancestors в политику безопасности содержимого приложения. Директива frame-ancestors 'none' по своему поведению аналогична директиве X-Frame-Options deny директива. Директива frame-ancestors 'self' в целом эквивалентна директиве X-Frame-Options sameorigin в том смысле, что они указывают на домен self. Следующий CSP ведет белый список фреймов только для того же домена:Content-Security-Policy: frame-ancestors 'self';

В качестве альтернативы фрейминг может быть ограничен именованными сайтами/доменами: `Content-Security-Policy: frame-ancestors normal-website.com;`

## 3. Выводы:

Заголовки ответов `X-Frame-Options иContent-Security-Policy` определяют, разрешено ли браузеру встраивать или отображать страницу в `<inframe>` элементе . Поскольку эта тема больше связана с настройкой сервера, а не с самим уязвимым кодом, вот ссылка на более "интерактивный" ресурс, где вы можете узнать, как обычно ведет себя Clickjacking.


---

# 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/secure-coding/client-side/clickjacking.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.
