- OAuth improvements and fixes: more secure session-based authentication (by token that could be revoked anytime), ability to revoke belonging OAuth token from any client etc.
- Ability to set ActivityPub aliases for follower migration.
- Configurable background job limits for RichMedia (link previews) and MediaProxyWarmingPolicy
-
+- Ability to set the `Service-Worker-Allowed` header
<details>
<summary>API Changes</summary>
type: :string,
description: "Adds the specified URL to report-uri and report-to group in CSP header",
suggestions: ["https://example.com/report-uri"]
+ },
+ %{
+ key: :service_worker_allowed,
+ label: "The Service-Worker-Allowed header",
+ type: :string,
+ description:
+ "Sets the Service-Worker-Allowed header which limits the maximum allowed Service Worker scope",
+ suggestions: ["/"]
}
]
},
defp headers do
referrer_policy = Config.get([:http_security, :referrer_policy])
report_uri = Config.get([:http_security, :report_uri])
+ service_worker_allowed = Config.get([:http_security, :service_worker_allowed])
headers = [
{"x-xss-protection", "1; mode=block"},
{"content-security-policy", csp_string()}
]
+ headers =
+ if service_worker_allowed do
+ [{"service-worker-allowed", service_worker_allowed} | headers]
+ else
+ headers
+ end
+
if report_uri do
report_group = %{
"group" => "csp-endpoint",
assert csp =~ "media-src 'self' https:;"
assert csp =~ "img-src 'self' data: blob: https:;"
end
+
+ test "it sets the Service-Worker-Allowed header", %{conn: conn} do
+ clear_config([:http_security, :enabled], true)
+ clear_config([:http_security, :service_worker_allowed], "/")
+
+ conn = get(conn, "/api/v1/instance")
+ assert Conn.get_resp_header(conn, "service-worker-allowed") == ["/"]
+ end
end
describe "img-src and media-src" do