loopbackio / loopbackio/loopback.io

Explorer violates content-security-policy: default-src 'self'

Open
#1,783 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
276
Forks
382
Avg merge
6h 17m
Merged PRs (30d)
18

Description

## URL of the page

[https://localhost:3000/api/explorer/](https://localhost:3000/api/explorer/)

## Nature of the issue

If the API is served by an Ingress that implements this Response Header:
content-security-policy: default-src 'self'
the api explorer fails to load

## Expected behavior

No errors when running with restrictive content-security-policy.

## Actual behavior

The following errors appear in the console of Goole Chrome:

```
explorer/:11 Refused to apply inline style because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-R1cfim84YiZ+NisBAfyCbdN3fV7Y7Uys20qAO4OBGJ0='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'style-src' was not explicitly set, so 'default-src' is used as a fallback.

explorer/:36 Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-DLbdWNBhwD1fyzUBjaE5Up3Y/4UCDB1OYv/c61qHL/I='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
```

These occur because the HTML contains a and a <script> tag respectively.

## Suggested resolution

Move the <style> and <script> contents to separate files.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the API Explorer page served at /api/explorer/ and inspect the HTML for its inline style and script elements. Move those contents into separate files and verify that the page loads without console errors under default-src 'self'.

Written by the indexing model from the issue text.

Assessment

Tech stack
css, html, javascript
Domain
frontend, security, web-dev
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.