- From: Brandon Sterne <bsterne@mozilla.com>
- Date: Thu, 27 Jan 2011 08:54:18 -0800
- To: public-web-security@w3.org
It has been very encouraging to see the flurry of activity on this list
over the past week. There have emerged a couple of positions that need
to be reconciled for this debate to move forward. I would like to
propose the following model for Content Security Policy [1] as an
attempt to do so.
We can debate the names and syntax later, but we need to settle on the
functionality that will be included in version 1 of Content Security Policy.
1. Script controls
a. disable inline scripts by default
b. script-src: list of domains where script can be loaded from
c. script-nonce: a nonce which, if present in a <script> tag will
permit inline script to run
2. Content restrictions
a. allow: catch-all for content-types not specified in policy
b. img-src: domains permitted to load images
c. media-src: domains permitted to load <video>, <audio>
d. object-src: domains permitted to load plugin content
e. frame-src: domains permitted to be loaded in <iframe>s
f. font-src: domains permitted to load fonts
g. xhr-src: domains permitted to send XHR to
h. style-src: domains permitted to load stylesheets
3. Violation Reporting
a. report-uri: URI to which a report will be sent upon policy
violation
b. SecurityViolation event: DOM event fired upon policy violations
4. Clickjacking protection
a. frame-ancestors: list of domains permitted to embed the resource
in an iframe
5. Options (mechanisms to change default CSP behaviors)
a. inline-script: permit inline script to execute
b. eval-script: permit eval() and related functions to be used
6. Policy delivery
a. HTTP header
b. <meta> (or <link>) tag, to be superseded by header if present
c. policy-uri: a URI from which the policy will be fetched; can be
specified in either header or tag
I think the most productive way forward for this group will be to debate
the individual merits of the above sections. If members feel that a
section should be modified or removed, please make a comment to that
effect, including supporting rationale for doing so. The same would
apply to group members who want to propose an addition to the above.
Does this sound like a reasonable approach to take? I look forward to
our continued discussion.
Best regards,
Brandon
[1] I am using the name "Content Security Policy" as it's referred to
in the deliverables section of the proposed Web App Security WG
Charter [2], defined as "A policy language intended to enable web
designers or server administrators to adjust the HTML5 security
policy, and specify how content interacts on their web sites."
[2] http://www.w3.org/2010/07/appsecwg-charter
Received on Thursday, 27 January 2011 16:56:45 UTC