docs: refine backend conventions and routing
Backend security / security (push) Successful in 8s
Backend verify / verify (push) Successful in 2m12s
Conventional commits / commits (pull_request) Successful in 25s
Backend security / security (pull_request) Successful in 7s
Backend verify / verify (pull_request) Successful in 2m3s
Backend security / security (push) Successful in 8s
Backend verify / verify (push) Successful in 2m12s
Conventional commits / commits (pull_request) Successful in 25s
Backend security / security (pull_request) Successful in 7s
Backend verify / verify (pull_request) Successful in 2m3s
This commit is contained in:
@@ -24,6 +24,10 @@ frontend session/cache очищается и при network failure.
|
||||
|
||||
## Trust boundaries
|
||||
|
||||
Frontend не является security boundary. DTO runtime validation выполняется
|
||||
server-side; whitelist не заменяет access checks. Environment/secret inputs
|
||||
проверяет existing config owner; реальные credentials не попадают в fixtures.
|
||||
|
||||
Verified JWT не доказывает доступ к accountId из URL. Используй user.sub и
|
||||
existing account access policy; не доверяй userId/token из клиента как authority.
|
||||
Cross-user, invalid/expired/superseded token и concurrent requests — обязательные
|
||||
@@ -39,6 +43,11 @@ cache invalidation при замене/deletion и ограничение key ro
|
||||
обрабатывает существующий bcrypt flow. Не копируй требования о нормализации
|
||||
или длине из tutorial: сверяй runtime DTO, tests и feature source.
|
||||
|
||||
Предпочитай Prisma query API. Raw SQL допускается только по конкретной нужде
|
||||
с параметризованными значениями; не конкатенируй untrusted input и не передавай
|
||||
его в `queryRawUnsafe`/`executeRawUnsafe`. Dynamic identifiers выбирай из
|
||||
закрытого server-owned набора. Проверка user ownership сохраняется и в SQL.
|
||||
|
||||
## Безопасный путь и проверка
|
||||
|
||||
При неясной ownership/crypto/session семантике прочитай exact source до edits.
|
||||
|
||||
Reference in New Issue
Block a user