docs(proxy-client): принцип простоты — в спецификацию вместо ADR
Отдельный ADR дублировал спецификацию и оставлял в ней устаревшие места. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
05a7f1e4fb
commit
502f828c6f
2 files changed
+26
-43
No files matched your search
@@ -2,12 +2,33 @@
|
||||
|
||||
Дата: 2026-07-15
|
||||
|
||||
Статус: основная реализация принята вручную; самостоятельный установщик
|
||||
спроектирован 2026-07-21, но ещё не реализован
|
||||
Статус: реализовано; 2026-09-28 упрощено по принципу ниже
|
||||
|
||||
> 2026-09-28: часть защит отсюда снята как избыточная для личного инструмента,
|
||||
> см. [ADR 0001](../adr/0001-proxy-client-lichnyj-instrument.md). При
|
||||
> расхождении действует ADR.
|
||||
## Принцип: личный инструмент
|
||||
|
||||
`proxy-client` пользуются владелец и несколько друзей на своих машинах. Код
|
||||
защищается от реальных ошибок и опасностей:
|
||||
|
||||
- скачанный Xray проверяется по SHA-256 и заменяется атомарно;
|
||||
- секреты профиля не попадают в вывод, служебные файлы закрыты правами 600/700;
|
||||
- локальный порт Xray слушает только loopback;
|
||||
- чужие файлы не перезаписываются;
|
||||
- сигнал уходит только процессу, у которого `/proc/PID/exe` совпадает с
|
||||
запущенным Xray.
|
||||
|
||||
Пользователь и его собственные файлы — не противник. Сообщение об ошибке
|
||||
называет файл полным путём и подсказывает готовую команду.
|
||||
|
||||
Новая защита появляется вместе со сценарием, который реально случается у
|
||||
пользователя, и этот сценарий записывается рядом с ней. Так же проверяется и
|
||||
прежний код: в 2026-09-28 убраны защиты без такого сценария — повторное
|
||||
использование PID, подложный `state.json`, zip-бомба в проверенном архиве,
|
||||
гонка `status` с параллельным `start`.
|
||||
|
||||
Тесты проверяют поведение через команду `proxy-client`, разбор ссылки
|
||||
(`parse_vless` + `build_xray_config`), установку Xray с подставным
|
||||
скачивателем, функции Bash с поддельным `PROXY_CLIENT_BIN` и установщик пакета
|
||||
во временном HOME.
|
||||
|
||||
## Проблема
|
||||
|
||||
|
||||
Reference in new issue
Block a user