Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(helmet): implement CSP policy #314

Merged
merged 1 commit into from
Jul 28, 2020
Merged

feat(helmet): implement CSP policy #314

merged 1 commit into from
Jul 28, 2020

Conversation

LoneRifle
Copy link
Contributor

Problem

Closes #291

Solution

Tighten how the browser interacts with the rest of the world when
accessing go.gov.sg. Avoid having to inject a nonce into the transition
page by moving the sole inline script into its own templated file.

  • specify a content security policy using helmet
  • allow requests from Google, Sentry (if present)
  • move inline script in transition-page.ejs to its own template, and
    map this to /assets/transition-page/js/gtag.js

Screenshots

image

Deploy Notes

New environment variables:

  • CSP_ONLY_REPORT_VIOLATIONS - when true, only reports CSP violations
  • CSP_REPORT_URI - the URI that a browser can POST CSP violations to

Copy link
Contributor

@liangyuanruo liangyuanruo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some comments regarding the cleanliness of the API routes, lgtm otherwise!

Tighten how the browser interacts with the rest of the world when
accessing go.gov.sg. Avoid having to inject a nonce into the transition
page by moving the sole inline script into its own templated file.

- specify a content security policy using helmet
- allow requests from Google, Sentry (if present)
- move inline script in transition-page.ejs to its own template, and
  map this to `/assets/transition-page/js/gtag.js`

New env variables:

`CSP_ONLY_REPORT_VIOLATIONS` - when true, only reports CSP violations
`CSP_REPORT_URI` - the URI that a browser can POST CSP violations to
@LoneRifle LoneRifle merged commit f584eba into develop Jul 28, 2020
@LoneRifle LoneRifle deleted the feat/helmet/csp branch July 28, 2020 06:50
@LoneRifle LoneRifle restored the feat/helmet/csp branch July 29, 2020 06:49
LoneRifle added a commit that referenced this pull request Jul 29, 2020
LoneRifle added a commit that referenced this pull request Jul 29, 2020
LoneRifle added a commit that referenced this pull request Jul 29, 2020
xming13 pushed a commit to xming13/GoGovSG that referenced this pull request Aug 21, 2020
Tighten how the browser interacts with the rest of the world when
accessing go.gov.sg. Avoid having to inject a nonce into the transition
page by moving the sole inline script into its own templated file.

- specify a content security policy using helmet
- allow requests from Google, Sentry (if present)
- move inline script in transition-page.ejs to its own template, and
  map this to `/assets/transition-page/js/gtag.js`

New env variables:

`CSP_ONLY_REPORT_VIOLATIONS` - when true, only reports CSP violations
`CSP_REPORT_URI` - the URI that a browser can POST CSP violations to
xming13 pushed a commit to xming13/GoGovSG that referenced this pull request Aug 21, 2020
xming13 pushed a commit to xming13/GoGovSG that referenced this pull request Aug 21, 2020
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.

Implement HTTP Security Headers
2 participants