# Local file-path manipulation

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

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

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

Потенциальное воздействие этой уязвимости зависит от того, как веб‑сайт использует открытый файл:

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

В обоих случаях фактическая эксплуатируемость потенциальной уязвимости может зависеть от наличия на сайте другой подходящей функциональности.

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

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

```js
FileReader.readAsArrayBuffer()
FileReader.readAsBinaryString()
FileReader.readAsDataURL()
FileReader.readAsText()
FileReader.readAsFile()
FileReader.root.getFile()
```

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

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