# Link manipulation

## Что такое манипуляции ссылками на основе DOM?

Уязвимости манипуляции ссылками возникают, когда скрипт записывает контролируемые атакующим данные в цель навигации внутри текущей страницы, например, в кликабельную ссылку или URL отправки формы. Атакующий может использовать эту уязвимость, чтобы сконструировать URL, который при посещении изменит целевые адреса ссылок в ответе.

## Каковы последствия атаки манипуляции ссылками?

Атакующий может использовать эту уязвимость для выполнения различных атак, включая:

* Перенаправление пользователя на произвольный внешний URL, что может облегчить фишинговую атаку.
* Заставить пользователя отправить конфиденциальные данные формы на сервер, контролируемый атакующим.
* Изменение файла или строки запроса, связанной со ссылкой, что приводит к выполнению пользователем непреднамеренного действия в приложении.
* Обход браузерных защит от XSS путём внедрения внутрисайтовых ссылок, содержащих XSS-эксплойты. Это работает, потому что такие защиты обычно не учитывают внутрисайтовые ссылки.

## Какие приёмники могут привести к уязвимостям манипуляции ссылками?

Ниже приведены некоторые из основных приёмников, которые могут приводить к уязвимостям манипуляции ссылками на основе DOM:

```js
element.href
element.src
element.action
```

## Как предотвратить уязвимости манипуляции ссылками

В дополнение к общим мерам, описанным на странице [DOM-based](https://wr3dmast3r.gitbook.io/portswiggerfundamental/client-side/dom-based), следует избегать предоставления данным из ненадежных источников возможности динамически задавать целевой URL для ссылок или форм.
