46 lines
3.6 KiB
Markdown
46 lines
3.6 KiB
Markdown
# ExternalBind
|
||
|
||
Опциональный модуль в **`Modules/ExternalBind/`**: для **заданных URL привязки Lite / Online** запрос считается «локальным» при классификации (`RequestModel.IsLocalIp`).
|
||
|
||
В [`manifest.json`](manifest.json) по умолчанию **`"enable": false`**. В [корневом README](../../README.md) модуль перечислен в таблице модулей.
|
||
|
||
## Зачем нужен
|
||
|
||
Несколько контроллеров Online (Filmix Pro, KinoPub, GetsTV и аналоги) завершают привязку устройства / выдачу токена только если `requestInfo.IsLocalIp == true`. Обычно флаг выставляется лишь для адреса клиента из локальной сети (см. `IPNetwork.IsLocalIp`).
|
||
|
||
Если ссылку привязки открыть с другого компьютера, через обратный прокси или в любой схеме, где браузер **не** определяется как локальный IP, эти эндпоинты отвечают ошибкой вроде **«is not local ip»**, и сценарий не завершается.
|
||
|
||
ExternalBind подключается рано в цепочке middleware (`EventListener.Middleware`) и **только для перечисленных ниже путей** принудительно выставляет `IsLocalIp = true`, чтобы шаг привязки мог выполниться.
|
||
|
||
## Затронутые пути
|
||
|
||
Точное совпадение пути (без учёта регистра):
|
||
|
||
| Путь | Назначение |
|
||
|------|------------|
|
||
| `/lite/filmixpro` | Привязка Filmix Pro |
|
||
| `/lite/rhs/bind` | Привязка Rezka |
|
||
| `/lite/kinopubpro` | Привязка KinoPub Pro |
|
||
| `/lite/getstv/bind` | Привязка GetsTV |
|
||
| `/lite/vokinotk` | Привязка Vokino |
|
||
| `/lite/iptvonline/bind` | Привязка IPTV Online |
|
||
|
||
Чтобы добавить или изменить пути, правьте `ExternalBindPaths` в `ModInit.cs`.
|
||
|
||
## Включение
|
||
|
||
В `manifest.json` установите `"enable": true` и перезагрузите хост, чтобы модуль подхватился.
|
||
|
||
По умолчанию **`enable: false`** — URL привязки остаются «только для локальной сети», пока вы явно не включите модуль.
|
||
|
||
## WAF и безопасность
|
||
|
||
При `IsLocalIp == true` поведение WAF может отличаться от обычного удалённого клиента (например, в `init.conf` параметр `bypassLocalIP` может ослаблять часть проверок WAF для таких запросов). Включение ExternalBind расширяет круг тех, кто может завершить привязку **по перечисленным путям**, до любого, кто достучится до сервера по этим URL.
|
||
|
||
Включайте модуль только если нужны удалённая или проксированная привязка; сохраняйте обычные меры: HTTPS, контроль доступа, файрвол.
|
||
|
||
## Зависимости
|
||
|
||
- Реализует `IModuleLoaded`; отдельных ключей конфигурации нет.
|
||
- Зависит только от `Shared`; контроллеров и статики в модуле нет.
|