Stop allowing credentialed cross-origin requests (closes #261)
check / check (push) Failing after 3s
check / check (push) Failing after 3s
CORS() allowed every origin with credentials, so a page on another origin of the same site could read what the signed-in user sees. CORS() now uses the CONVENTIONS.md template's options (AllowedOrigins "*", AllowCredentials false) and covers only the two public, read-only routes, GET /api/v1/server and GET /.well-known/healthcheck.json. Every other route sends no Access-Control-Allow-* header. A preflight to the public routes gets 405 like any other path. Deviation: CORS() is not in the global middleware chain CONVENTIONS.md lists, because REPO_POLICIES.md forbids * on authenticated routes. Model: opus-5-5
This commit was merged in pull request #269.
This commit is contained in:
1 parent
ed5125606a
commit
ba79d6de02
4 files changed
+101
-21
No files matched your search
@@ -30,7 +30,6 @@ func (srv *Server) SetupRoutes() {
|
||||
srv.router.Use(srv.mw.Metrics())
|
||||
}
|
||||
|
||||
srv.router.Use(srv.mw.CORS())
|
||||
srv.router.Use(srv.mw.CSP())
|
||||
srv.router.Use(middleware.Timeout(routeTimeout))
|
||||
|
||||
@@ -45,7 +44,7 @@ func (srv *Server) SetupRoutes() {
|
||||
}
|
||||
|
||||
// Health check.
|
||||
srv.router.Get(
|
||||
srv.router.With(srv.mw.CORS()).Get(
|
||||
"/.well-known/healthcheck.json",
|
||||
srv.handlers.HandleHealthCheck(),
|
||||
)
|
||||
@@ -69,7 +68,7 @@ func (srv *Server) SetupRoutes() {
|
||||
}
|
||||
|
||||
func (srv *Server) setupAPIv1(router chi.Router) {
|
||||
router.Get(
|
||||
router.With(srv.mw.CORS()).Get(
|
||||
"/server",
|
||||
srv.handlers.HandleServerInfo(),
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user