refactor: add clickjacking protection headers - #1195
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1195 +/- ##
==========================================
+ Coverage 49.79% 50.26% +0.47%
==========================================
Files 146 146
Lines 13460 13466 +6
==========================================
+ Hits 6702 6769 +67
+ Misses 6177 6108 -69
- Partials 581 589 +8 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Adds global anti-clickjacking response headers to Console’s Gin HTTP router to prevent UI/API embedding in third-party frames.
Changes:
- Introduced a Gin middleware that sets
X-Frame-Options: SAMEORIGINandContent-Security-Policy: frame-ancestors 'self'on responses. - Added unit tests asserting these headers are present both for a simple route and for the
/api/v1/authorizeroute.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| internal/controller/httpapi/router.go | Adds clickjacking protection middleware and applies it globally to the router. |
| internal/controller/httpapi/ui_test.go | Adds tests validating the middleware and router behavior sets the expected headers. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
a2184e6 to
11a050c
Compare
sudhir-intc
left a comment
There was a problem hiding this comment.
In addition to the review comments provided, please update the postman collections too with the expected responses.
| // Options | ||
| handler.Use(gin.Logger()) | ||
| handler.Use(gin.Recovery()) | ||
| handler.Use(clickjackingProtectionMiddleware()) |
There was a problem hiding this comment.
The current approach adds these headers for container and headless deployments as well. I recommend limiting them to the standalone Console build with the embedded UI, since container/headless deployments expose only REST APIs and do not serve browser-rendered content where clickjacking or browser capability policies apply.
Consider making the browser security-header behavior runtime-configurable to allow deployment-specific customization.
@rsdmike / @MadhaviLosetty : Do you agree on this ?
Summary
This PR address by adding anti-clickjacking response headers to Console HTTP responses. The change prevents the Console UI and API endpoints from being embedded in third-party frames, reducing risk of UI redress attacks against authenticated sessions.
Issue:
The finding states Console is vulnerable to clickjacking.
Sample Output