Исправление: том ./mods:/lampac/mods в compose и копии 10 модулей с enable:true; конфиг без SkipModules

This commit is contained in:
2026-10-02 12:11:49 +03:00
parent 8dcbc6bc52
commit 7b8e28b3bf
151 changed files with 68625 additions and 44 deletions
+45
View File
@@ -0,0 +1,45 @@
# 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`; контроллеров и статики в модуле нет.