Encrypt cookies

This commit is contained in:
2026-09-13 11:45:15 +02:00
parent 99bdadf248
commit cb34bae784
11 changed files with 344 additions and 34 deletions
+9 -3
View File
@@ -61,13 +61,19 @@ type indexPage struct {
func (s *Server) handleIndex(w http.ResponseWriter, r *http.Request) {
// A remembered token is resolved server-side, so the page can show the real
// limits without the cookie ever being readable by a script.
lim, err := s.limitsFor(r, cookieCredential(r))
lim, err := s.limitsFor(r, s.cookieCredential(r))
stale := false
if err != nil {
switch {
case err != nil:
// The token was revoked or the file was edited; end the session rather
// than leave the caller wondering why uploads fail.
s.forget(w, r)
lim, stale = auth.Anonymous(s.cfg), true
case s.staleSession(r):
// A cookie this server cannot open. Same treatment: it is not a
// session, and it should stop being sent.
s.forget(w, r)
stale = true
}
s.render(w, http.StatusOK, "index.html", indexPage{
@@ -122,7 +128,7 @@ func (s *Server) renderInfo(w http.ResponseWriter, r *http.Request, m *store.Met
Size: config.FormatSize(m.Size),
Expires: describeExpiry(m.Expires, s.now()),
URL: s.objectURL(r, m.ID),
CanDelete: s.mayDelete(r, m, credential(r)),
CanDelete: s.mayDelete(r, m, s.credential(r)),
Error: errMsg,
})
}