Content Security Policy wildcard seems to be ignored - electron

To give some context, this is an Electron app, loading the index.html using file://
It seems like the content security policy is contracting itself:
Refused to connect to 'https://o944978.ingest.sentry.io/api/5893671/envelope/?sentry_key=0a6134a5d89d40c4954c6144b0e63c64&sentry_version=7' because it violates the following Content Security Policy directive: "default-src 'unsafe-inline' 'self' 'unsafe-eval' data: *.sentry.io *.cloudfront.net". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.
That URL clearly matches the wildcard *.sentry.io, or am I missing something?

I'm gonna answer myself here: You can't.
The 2 options are: disabling web security or starting a static web server.

It's difficult to know without seeing your implementation, but here are some suggestions:
Test using only *.sentry.io in the CSP at first; add domains as they appear in the errors. This idea is to come up with the minimal CSP that makes it work.
My CSP has "data:" at the end of the list. I don't remember why, but I think there was a reason...
Make sure you are closing each list with a semicolon ";"
(Answered as a post because I don't have enough reputation to comment)

The *.sentry.io source is recomended by docs.sentry.io docs and it definitely should work even you put it in default-src directive instead of connect-src one. CSP supports wilcard to specify a subdomains.
The only reason why CSP can block allowed sources is the presence of browser plugins like NoScript/uBlock and so on.

Suggestion trying to help:
Could you try also explicitly setting the connect-src with
connect-src sentry.io https://*.sentry.io *.sentry.io;
(and maybe other needed hosts)
Do you still get this error?

Related

Chrome Extension Manifest V 3 - Inline javascript on TARGET site click handler is breaking my CSP policy

I have a chrome extension that I recently migrated to manifest V3.
My extension bundles all required code, and so has a CSP setting of:
"content_security_policy": {
"extension_pages" : "script-src 'self'; object-src 'self'"
},
The extension is a content script running on a target site that I do not control, and at one point clicks a link on the page. The link has some inline javascript on the href, e.g:
Link Text
My extension locates the link using jquery, and then calls linkElement.click() to trigger the click. When it does this, I get CSP errors saying:
Refused to execute JavaScript URL because it violates the following Content Security Policy directive: "script-src 'self' object-src 'self'"
This was NOT a problem on manifest V2, it all worked fine.
This seems wrong to me. The inline code violation is on the target site, not my extension. All the extension is doing is clicking a DOM element.. Surely at that point it should just hand over to the target site to do it's thing.. It doesn't feel right that the target site code can break my extension's CSP policy.
Can anyone help?
Thanks
John

SignalR Content-Security-Policy issue

I'm trying to implement .NET SignalR (v2.4.0) to some of our project but,
SignalR $.connection.hub.start method give CSP error, we don't want to use 'unsafe-inline' CSP directive for scripts because of security conserns
Refused to execute inline script because it violates the following
Content Security Policy directive: "script-src
Is there any method or configuration to solve this problem?
Best Regards
You may need to implement CORS depending on where you are loading resources from.
https://learn.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#crossdomain
The violation message in the Chrome console:
Refused to execute inline script because it violates the following
Content Security Policy directive: "script-src
means you have inline scripts kind of <script>...</script> on the page.
You can allow such scripts by using 'nonce-value' or 'hash-value' tokens. Alternatively you can move this script to external file, in this case it falls under script-src 'self' permission.

Default Content-Security-Policy ASP MVC

I noticed a Content-Security-Policy header in a ASP MVC 5 project I was working on and was wondering where the default value comes from?
I've searched web.config and applicationhost.config for Content-Security-Policy and for the value: 'default-src 'self' 'unsafe-eval' 'unsafe-inline' data:;connect-src *;report-uri /csp-report-endpoint/', but no results in the project itself.
Does anyone know where the value comes from?
Maybe it comes from server setting?
In my taken over project, the problem happens too. After I check the codes and the difference between production version and test version, I found the test version doesn't response a CSP header but the production dose. I confirm the server manager and know that it caused by server environment setting.

Content Security Policy issue in google recaptcha v2

I have searched many question on SO related to this. But nothing solves my issue.
I am using google recaptcha v2 in an asp.net mvc5 app. It works fine in google chrome. But it is showing some error in firefox and edge browsers. I suspect this as something related to content security policy headers.
Error in Firefox
Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “http:” within script-src: ‘strict-dynamic’ specified
Error in Edge
Security of a sandboxed iframe is potentially compromised by allowing script and same origin access.
Due to this error recaptcha is not working since it get timed out everytime
I've tried to add csp headers like this in web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy" value="script-src 'self' 'unsafe-inline' https://www.google.com https://www.google.com/recaptcha/api.js https://www.gstatic.com" />
</customHeaders>
</httpProtocol>
</system.webServer>
But this doesn't work as well as my page got broken since all other files got blocked by the browser
It doesn’t appear that the script’s failure is CSP related. Those aren’t really errors you’re getting; merely notices.
In CSP some policies override other policies, so you get a notice that policy A is ignored because you’re using policy B. So why put policy A in at all, you ask? For compatibility with older browsers that don’t understand policy B.
For example: I use CSP nonces, but also put in “unsafe-inline”. IE doesn’t understand nonces so it uses the “unsafe-inline” rule. Modern browsers ignore the “unsafe-inline” and use the nonces. In Firefox console I get a notice similar to what you’re getting

content security policy - unsafe inline and unsafe eval not working in moz and chrome

I have a mvc web application ,I have configure content security policy as
<add name="Content-Security-Policy" value="default-src 'self';script-src 'self' 'unsafe-inline' 'unsafe-eval' ;style-src 'self' 'unsafe-inline' ;img-src 'self';font-src 'self' ; "/>
which work well in all browser including IE,CHROME,MOZILLA.
I am using lots of inline jquery/javascript code in cshtml page.
but my security team has fail my security of the web application and they wanted us to remove 'unsafe-inline' 'unsafe-eval'
After i remove unsafe-inline and unsafe-eval application only work in IE ,But not working in chrome and mozilla. is there any work around to acheive the above without 'unsafe-inline' 'unsafe-eval'
You can try using NWebSec library to support you in the process of making your MVC application CSP compliant. See the documentation here.
You can take the help of NWebSec TagHelpers to make your scripts CSP compliant with nonce. See the information here.
A good read on this topic is here.
You can use a ASP.Net MVC Boilerplate Template by Rehan Saeed to understand the CSP. It has the NWebSec already implemented.
CSP is (as today 21/03/2018) not fully supported by IE (more information here https://caniuse.com/#search=csp).
Apparently your application is not CSP-compliant and this is why it does not run in a browser that implements CSP (like Chrome or Firefox).

Resources