- From: Pawel Krawczyk <pawel.krawczyk@hush.com>
- Date: Thu, 4 Sep 2014 21:26:21 +0100
- To: "Hill, Brad" <bhill@paypal.com>
- Cc: Mike West <mkwst@google.com>, Dan Veditz <dveditz@mozilla.com>, "public-webappsec@w3.org" <public-webappsec@w3.org>
- Message-ID: <0539c7daaf9aad13a1059725a1d00ef0@smtp.hushmail.com>
Unfortunately, in case of inline scripts and eval() typical CSP violation reports don’t seem to be very verbose - for example, this is what Chrome sends (in both cases report is identical): "referrer": "", "original-policy": "base-uri http://webcookies.info; connect-src 'none'; font-src 'none'; form-action 'none'; frame-ancestors 'none'; child-src 'none'; default-src 'none'; frame-src 'none'; img-src 'none'; media-src 'none'; object-src 'none'; script-src 'none'; style-src 'none';", "violated-directive": "script-src 'none'", "blocked-uri": "", "status-code": 200, "document-uri": "http://webcookies.info/" On 4 Sep 2014, at 17:11, Hill, Brad <bhill@paypal.com> wrote: > We don’t say anything normative about that right now, but putting non-uris in that field might make folks unhappy, yes. > > Don’t the source-file, line-number and column-number fields in the example full report below give what is needed to make the inline/eval distinction? It’s not something you can easily parse out with a script, perhaps, but seems like it would make short work of a manual investigation, at least. > > From: Mike West [mailto:mkwst@google.com] > Sent: Thursday, September 04, 2014 8:25 AM > To: Pawel Krawczyk; Dan Veditz; Hill, Brad > Cc: public-webappsec@w3.org > Subject: Re: CSP reports on eval() and inline > > This seems pretty reasonable. My only concern is that existing parsers wouldn't appreciate invalid URLs in the 'blocked-uri' field. > > This might be small enough to sneak into CSP2 at the last minute. WDYT Dan, Brad? > > -mike > > On Sep 4, 2014 2:12 PM, "Pawel Krawczyk" <pawel.krawczyk@hush.com> wrote: > A small issue we have just discussed at GitHub https://github.com/w3c/webappsec/issues/52: > > CSP violation reports sent when browser blocks eval() and inline script are identical in their contents, which makes it difficult to determine what really caused them. > In both cases the fields violated-directive will be set to script-scr and blocked-uri will be empty. So when I'm trying to analyse received reports I can't really say what I should allow - unsafe-eval or unsafe-inline. Sample fields extracted from such reports: > "blocked-uri":"" > > "violated-directive":"script-src 'none’" > > The solution might be either sending some kind of meaningful blocked-url value - such as self-eval or self-inline, or adding an additional field to the report, such as blocked-feature set to eval or inline respectively. > Sample full report: > > 1. {"csp-report":{"document-uri":"http://webcookies.info/","referrer":"","violated-directive":"script-src 'none'","original-policy":"base-uri http://webcookies.info; connect-src 'none'; font-src 'none'; form-action 'none'; frame-ancestors 'none'; child-src 'none'; default-src 'none'; frame-src 'none'; img-src 'none'; media-src 'none'; object-src 'none'; script-src 'none'; style-src 'none'; report-urihttp://new.cspbuilder.info:8080/report/9018643792216450862","blocked-uri":"","source-file":"http://pagead2.googlesyndication.com","line-number":101,"column-number":236,"status-code":200}} > > > -- > Pawel Krawczyk > pawel.krawczyk@hush.com +44 7879 180015 > CISSP, OWASP > > > -- Pawel Krawczyk pawel.krawczyk@hush.com +44 7879 180015 CISSP, OWASP
Received on Thursday, 4 September 2014 20:26:54 UTC