Files
bobiqqandClaude Opus 5 b88fc06d36
build-and-push / detect (push) Successful in 10s
build-and-push / build (${{ fromJSON(needs.detect.outputs.services) }}) (push) Successful in 30s
tiktak: не выдавать доступ к несуществующему видео
handleAccess вызывал AddAccess не проверяя, что видео существует. Значит
можно было пре-авторизоваться на ещё не созданные id (и на отрицательные):
POST /access videoID=<top+3000> с форженным токеном возвращает 302, строка
в access создаётся, и когда чекер создаст видео с этим id -- доступ уже
есть.

Главное: такая строка ПЕРЕЖИВАЕТ ротацию токенов. haveAccess() смотрит в
таблицу access, а не на токен, поэтому переход на HMAC от заранее набитых
записей не защищает.

Проверено на 10.10.10.5: /access для id=top+3000 -> 302 /watch/63481.

Чистка уже накопленного мусора (легитимных записей на несуществующие видео
быть не может):
  DELETE a FROM access a LEFT JOIN video v ON v.id = a.video_id
  WHERE v.id IS NULL;

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 13:15:58 +03:00
..
2026-08-26 11:04:23 +03:00
2026-08-26 11:04:23 +03:00
2026-08-26 11:04:23 +03:00