Skip to content

[HWORKS-3754] Click jacking, cross-site scripting and other attack mitigation - #783

Open
ErmiasG wants to merge 1 commit into
logicalclocks:mainfrom
ErmiasG:HWORKS-3754
Open

ErmiasG wants to merge 1 commit into
logicalclocks:mainfrom
ErmiasG:HWORKS-3754

Conversation

@ErmiasG

@ErmiasG ErmiasG commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

https://hopsworks.atlassian.net/browse/HWORKS-3754

Summary

  • New admin page setup_installation/admin/security_headers.md: the headers Hopsworks sets on the UI, its REST endpoints, its error pages and the services it proxies, the cookie attributes, and the hopsworks.payara.securityHeaders Helm values. It covers the report-only switch and how to use it, extra sources for model deployments on another host or port and for sites that frame the UI, and HSTS with its HTTPS prerequisite and how to undo it.
  • 5.2.x to 5.3.x upgrade note pointing to it, and noting that pages are no longer served from the browser's offline cache.

Related

Test plan

  • hopsworks-docs markdownlint
  • hopsworks-docs check: no warnings from these pages; the strict build stops on six cross-references in user_guides/mlops/serving/rest-api.md to API symbols the local hopsworks-api copy lacks, unrelated to this PR
  • The page's header table, report-only behaviour and reload timing checked against a dev cluster running the change
  • On the 5.2 backport, move the upgrade note under the 5.2 patch release that carries it

🤖 Generated with Claude Code

@ErmiasG
ErmiasG marked this pull request as ready for review November 10, 2026 15:23
@ErmiasG
ErmiasG requested a review from manu-sj November 10, 2026 15:23
@ErmiasG
ErmiasG force-pushed the HWORKS-3754 branch 2 times, most recently from 4ba210e to bc2874e Compare November 11, 2026 10:31
…tigation

https://hopsworks.atlassian.net/browse/HWORKS-3754

Hopsworks sets restrictive security response headers itself, in its
application server, on the UI, its REST endpoints, its error pages and
the services it proxies, so they apply whatever sits in front of the
cluster. Every cookie it issues or passes on carries Secure and
SameSite=Lax, and its own cookies are HttpOnly. The UI runs under an
enforced Content-Security-Policy, which Helm values tune without a
restart.

The backend adds the headers filter, the cookie handling and the image
changes; the chart adds the policy values, ConfigMap and mounts; the
frontend becomes CSP-compatible; the loadtest checks the headers on a
cluster; the docs describe the headers, the values and the upgrade.

The docs add an admin page on the security headers: the headers per
kind of response, the cookie attributes, the Helm values, the
report-only switch and how to use it, extra sources for model
deployments on another host and for sites that frame the UI, and HSTS
with its prerequisite and undo. A 5.2.x to 5.3.x upgrade note points
to it.

Reviewed-by: OpenAI Codex (codex-plugin-cc 1.0.4) <codex@openai.com>
Signed-off-by: Ermias Gebremeskel <ermias@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant