Bug 153148
Summary: | CSP: 'eval()' blocked in report-only mode should send a violation report | ||
---|---|---|---|
Product: | WebKit | Reporter: | Daniel Bates <dbates> |
Component: | WebCore Misc. | Assignee: | Daniel Bates <dbates> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | bfulgham, dbates, webkit-bug-importer |
Priority: | P2 | Keywords: | BlinkMergeCandidate, InRadar |
Version: | WebKit Local Build | ||
Hardware: | All | ||
OS: | All |
Daniel Bates
We should merge <https://src.chromium.org/viewvc/blink?view=rev&revision=155752>.
CSP: 'eval()' blocked in report-only mode should send a violation report.
Currently, 'eval()' is blocked inside V8 when an enforce-mode Content
Security Policy is specified for a document. Report-only policies don't
trigger this mechanism, and therefore can deliver violation reports
neither to the 'report-uri' in the policy nor the console.
This patch changes ContentSecurityPolicy::didReceiveHeader to disable
eval inside V8 for report-only policies as well, and relies on the
V8Initializer::codeGenerationCheckCallbackInMainThread callback to give
V8 the final go/no-go decision regarding the code's execution.
This patch has the negative performance side-effect of calling back from
V8 to core whenever 'eval()' is encountered on a page with an CSP that
blocks eval. Given that the page isn't expecting to run 'eval()' at all, that
impact seems like something we can live with (though it is fairly
significant).
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/24383146>
Daniel Bates
*** This bug has been marked as a duplicate of bug 111869 ***