Files
lampac/mods/ExternalBind/README.md
T

46 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`; контроллеров и статики в модуле нет.