-
-
Notifications
You must be signed in to change notification settings - Fork 237
Open
Labels
Description
DPoP keys are meant to protect the access-token in transit (from attacks like heartbleed, etc.). This is only efficient if the DPoP key is never sent over the wire.
The current implementation stores the OAuth session data in (encrypted, but still) cookies, which goes against this:
npmx.dev/server/api/auth/atproto.get.ts
Lines 64 to 65 in b73edaf
| const session = await useServerSession(event) | |
| const { stateStore, sessionStore } = useOAuthStorage(session) |
The same is also true for "state data". The State store is used to keep track of the state of a particular oauth flow. In particular, it should allow to prevent replays. Being stored in cookies, replays can be made possible.
Both SessionStore and StateStore should be using backend databases to store their data.
Reactions are currently unavailable