> For the complete documentation index, see [llms.txt](https://docs.ipcheck.ing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipcheck.ing/developer/ru/contributing/security-policy.md).

# Политика безопасности

MyIP занимается сетевой диагностикой, данными об IP и необязательными сторонними API-ключами. Если вы обнаружите уязвимость, проект хочет об этом узнать.

Эта страница воспроизводит [`SECURITY.md`](https://github.com/jason5ng32/MyIP/blob/main/SECURITY.md) в репозитории. Этот файл является авторитетной версией.

## Как сообщить

{% hint style="warning" %}
Указанный проектом канал — **GitHub Issues** — тот же трекер, который используется для багов. Отдельного адреса электронной почты для вопросов безопасности и задокументированного процесса частных уведомлений нет. Излагайте сообщение фактически и не публикуйте в тексте issue рабочий эксплойт.
{% endhint %}

{% stepper %}
{% step %}

### Создайте issue

Создайте новый issue на [странице issues MyIP](https://github.com/jason5ng32/MyIP/issues). Дайте чёткое, подробное описание потенциальной уязвимости и, если можете, приложите шаги для её воспроизведения.
{% endstep %}

{% step %}

### Не раскрывайте публично в других местах

Не разглашайте уязвимость — в блогах, соцсетях, списках рассылки — пока у сопровождающих не будет возможности её устранить.
{% endstep %}

{% step %}

### Ожидайте подтверждение в течение 48 часов

Проект стремится отвечать на сообщения о безопасности в течение 48 часов, подтверждая получение.
{% endstep %}

{% step %}

### Следите за веткой

Обновления о ходе работ публикуются в ветке issue на GitHub.
{% endstep %}
{% endstepper %}

## Что происходит дальше

После получения сообщения сопровождающие:

* Оперативно изучат проблему.
* Разработают исправление и тщательно его протестируют.
* Выпустят обновлённую версию, устраняющую её.
* При необходимости предоставят дополнительные обновления и патчи.

Сообщившие получают упоминание в ветке issue и, если исправление будет выпущено, в примечаниях к релизу.

## Поддерживаемые версии

`SECURITY.md` не определяет политику поддержки версий. На практике исправления попадают в последний релиз. Если вы используете self-hosting, обновитесь до текущей версии перед сообщением — и ожидайте, что любое исправление будет поставлено как новый релиз, а не как бэкпорт.

## Что считается проблемой безопасности

MyIP — это набор инструментов для работы с IP, который можно развернуть у себя: SPA на Vue 3 плюс API на Express, которое проксирует набор сторонних источников данных. К таким сообщениям относятся:

| Область                   | Примеры                                                                                                                                           |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| Утечка секретов           | API-ключи или учётные данные MaxMind, попадающие во frontend-бандл, журналы или ответы API                                                        |
| Контроль доступа          | Обход проверки referer или проверки IP, которые защищают `/api/*` — см. [Параметры безопасности](/developer/ru/configuration/security-options.md) |
| Инъекция                  | Инъекция команд, заголовков или шаблонов через переданные пользователем хосты, IP-адреса или домены                                               |
| SSRF                      | Принуждение бэкенда к запросу внутреннего адреса, выбранного атакующим, через endpoint поиска                                                     |
| XSS                       | Незэкранированные данные от upstream, отображаемые на странице                                                                                    |
| Утечки конфиденциальности | IP-адреса клиентов или результаты диагностики, попадающие туда, где им не место, включая телеметрию                                               |
| Проблемы зависимостей     | Уязвимый пакет, который MyIP действительно использует в достижимом коде                                                                           |

<details>

<summary>Обычно не является проблемой безопасности</summary>

* **Отсутствующие необязательные API-ключи**, либо ухудшенная работа функции при отсутствии ключа. Это ожидаемое поведение — см. [Необязательные API-ключи](/developer/ru/configuration/optional-api-keys.md).
* **Приложение, показывающее ваш собственный IP-адрес и отпечаток браузера.** Это и есть продукт.
* **Поведение поставщика данных upstream.** Сообщите об этом этому поставщику.
* **Неправильно настроенное развертывание** — открытый порт бэкенда, отсутствующий reverse proxy, слишком permissive CORS, который вы настроили сами. Начните с [Обратный прокси и домены](/developer/ru/getting-started/reverse-proxy-and-domains.md) и [Параметры безопасности](/developer/ru/configuration/security-options.md).
* **Результаты сканера без продемонстрированного воздействия.** Покажите, как это эксплуатируется в MyIP.

</details>

## Сообщение о баге, не связанном с безопасностью

Обычные баги проходят через стандартные шаблоны — см. [Сообщение о проблемах](/developer/ru/contributing/reporting-issues.md).


---

# 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://docs.ipcheck.ing/developer/ru/contributing/security-policy.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.
