A security header finding is a starting point
Use an annotated response to turn a script-policy observation into an application-specific change request with a clear test boundary.

You want to fix a missing script policy, so you ask your coding assistant for the right header. It returns a compact configuration string. Before you paste it, ask a different question: what must this page load, and which part of the delivery setup controls the response? A useful repair starts with those facts, rather than with a policy borrowed from another application.
Here is a synthetic response excerpt from the homepage at demo.example. It is teaching material, not a scanner export or a suggested production configuration. The excerpt shows the relevant fields; it does not show the HTML body.
HTTP/1.1 200 OK
Content-Type: text/html
Content-Security-Policy-Report-Only: script-src 'self'Report collection is not shown in this shortened example.
What this response actually says
The content type identifies an HTML response. The policy field is report-only: it does not enforce the restrictions written in it. No enforced Content-Security-Policy header is shown. Those are three separate observations, and none supplies an application-specific policy ready to deploy.
MDN's CSP guide explains both resource-loading controls and report-only testing. The report-only mode lets a site investigate a policy without enforcing it. It is not a reason to describe that policy as already protecting the page in the same way as an enforced policy.
There is another limit: the excerpt omits the HTML body. It cannot tell you whether the document contains a separate meta policy, or everything the page needs to load. Do not infer the browser's entire policy state from a shortened teaching example. The missing enforced header is a configuration question to inspect, not evidence that an injection attack works.
SecurityFuse distinguishes report-only CSP headers from enforced CSP headers. SecurityFuse is available by invitation. Hosted website scanning is not currently enabled. That does not mean this excerpt alone determines a complete product finding: applicability and the rest of the response still matter. In your own review, preserve those details instead of reducing the observation to “add any header.”
Find the configuration before choosing the change
Begin by finding where the homepage response is assembled. The setting might be controlled by application configuration or a delivery layer. Ask your coding assistant to identify that location from the project and explain how its proposed edit reaches the response. Do not invent a file path just to make the task look specific.
For the synthetic homepage, suppose a navigation menu opens and closes using a script served from the same origin. The policy proposal must preserve that interaction. Keeping this one first-party script working does not justify allowing scripts from unrelated origins. That is the decision the example's change request needs to explain.
Next, identify the page's real resource needs. Ask which script sources and loading patterns are intentional. The assistant should explain the allowances it proposes and the behavior they support. If it cannot establish why an allowance is needed, that uncertainty belongs in the review rather than disappearing into a broad exception.
HTTP Semantics, sections 5 and 6 describes messages and their fields. That protocol context helps keep the repair anchored to the delivered response. An edit to a configuration file is a proposal about how a later response will be produced; reading the edited file is not a new observation of that response.
Give the assistant a bounded job
For this example, a change request can fit into a small table. This is a teaching outline for a human-reviewed task, not text exported by SecurityFuse or an instruction to deploy automatically.
| Part of the request | What to ask for |
|---|---|
| Change | Locate the homepage header configuration and propose a policy that permits its same-origin menu script; explain the needed allowance |
| Boundary | Do not allow unrelated script origins just to make the menu work, or change other routes without review |
| Test | Confirm the menu still opens and closes, then inspect the delivered response after an approved deployment |
| Decision | Have a human review the policy, test results and rollout before treating the change as ready |
The boundary is doing real work here. If a proposed policy breaks an intended interaction, adding an unrestricted source just to clear the symptom loses the original reason for the change. First establish which resource or behavior was blocked and whether it should be allowed. Then review the smallest allowance that fits that need.
The menu test demonstrates the format of the request; it is not a complete test plan for a real page. The menu is an invented detail that makes this example testable. Your real project supplies its own intended interactions; replace the example with those needs. Ask the assistant to name the tests it ran, the ones it recommends and anything it could not exercise. A suggested test is not a test result.
Keep the result narrower than the warning
A policy appearing in a response can answer a presence question. It does not, by itself, establish that every directive fits the application or that an injection flaw has been repaired. What a website configuration scan can—and cannot—tell you explains how to separate the observation from those larger conclusions.
Once you have a reviewed change, From a repair statement to a comparable recheck explains what later evidence can establish. This article's job ends with a better change request: one tied to the observed response, the application's needs and a visible test boundary.
SecurityFuse's repair briefs are text to review and take to your coding tool; generating one does not execute that tool or deploy a change. The public sample shows a brief from our own test site, so you can inspect the form of the handoff without treating it as a public scan service.
Sources
- MDN: Content Security Policy · Controlling resource loading; testing your policy · Reviewed 2026-10-31
- HTTP Semantics — RFC 9110 · Sections 5–6: fields and messages · Reviewed 2026-10-31