16:07:10 RRSAgent has joined #webappsec 16:07:10 logging to http://www.w3.org/2013/04/25-webappsec-irc 16:07:12 RRSAgent, make logs world 16:07:12 Zakim has joined #webappsec 16:07:14 Zakim, this will be 16:07:14 I don't understand 'this will be', trackbot 16:07:15 Meeting: Web Application Security Working Group Teleconference 16:07:15 Date: 25 April 2013 16:08:53 wseltzer has changed the topic to: Agenda: http://lists.w3.org/Archives/Public/public-webappsec/2013Apr/0054.html 16:09:02 virginie has joined #webappsec 16:12:03 zakim, who is here? 16:12:03 sorry, wseltzer, I don't know what conference this is 16:12:04 On IRC I see virginie, Zakim, RRSAgent, tlr, bhill2, timeless, bhill, mkwst_, odinho, wseltzer, trackbot 16:12:14 zakim, this is WEBAPPSEC 16:12:15 sorry, wseltzer, I do not see a conference named 'WEBAPPSEC' in progress or scheduled at this time 16:12:28 zakim, this is waswg 16:12:28 ok, tlr; that matches SEC_WASWG(F2F)12:00PM 16:12:38 zakim, who is here? 16:12:39 On the phone I see Paypal, +1.650.488.aaaa 16:12:39 On IRC I see virginie, Zakim, RRSAgent, tlr, bhill2, timeless, bhill, mkwst_, odinho, wseltzer, trackbot 16:12:59 zakim, aaaa is mkwst_ 16:13:00 +mkwst_; got it 16:25:06 zakim, Paypal has bhill, abarth, drogersuk, wseltzer, Dan_Veditz 16:25:07 +bhill, abarth, drogersuk, wseltzer, Dan_Veditz; got it 16:25:19 zakim, Paypal also has tlr 16:25:19 +tlr; got it 16:27:17 dveditz has joined #webappsec 16:27:19 zakim, who's here? 16:27:19 On the phone I see Paypal, mkwst_ 16:27:20 Paypal has bhill, abarth, drogersuk, wseltzer, Dan_Veditz, tlr 16:27:20 On IRC I see dveditz, virginie, Zakim, RRSAgent, tlr, bhill2, timeless, bhill, mkwst_, odinho, wseltzer, trackbot 16:27:55 abarth has joined #webappsec 16:28:38 scribenick: abarth 16:29:34 zakim, Paypal also has Neil_Matatall 16:29:34 +Neil_Matatall; got it 16:29:50 drogersuk has joined #webappsec 16:29:55 starting with open issues 16:30:00 starting with CSP 1.0 16:30:04 then moving to CSP 1.1 16:30:22 Should we be considering refining the bookmarklet language in 1.0 or 1.1? 16:30:38 mkwst_: I think we shouldn't change 1.0 at this point 16:30:42 dveditz: I agree 16:31:04 dveditz: Not enough people are using CSP to know whether this is a real problem yet. it's speculative at this point 16:31:18 dveditz: the spec gives us the flexibily to change our behavior if needed 16:31:31 bhill2: most of these issues are 1.1 issues 16:31:58 dveditz: what about column numbers? 16:32:28 dveditz: it would be nice to get the column numbers into 1.0 16:33:06 abarth: would that trigger a bunch of process? 16:33:15 dveditz: depends on the test suite 16:33:28 tlr: adding new features in CR would be a problem 16:33:41 tlr: this feature would be borderline 16:34:11 bhill2: other outstanding change would be allowing cross-origin JSON posts 16:34:31 bhill2: doesn't appear elsewhere in the ecosystem 16:34:48 bhill2: could change the mime type or use an anonymous fetch 16:35:01 bhill2: that would trigger some process in the CR too 16:35:12 tlr: the point of CR is for the spec to be stable and implement it 16:35:30 tlr: the entrance to PR is when you have test and interoperability reports 16:36:25 tlr: if there are a set of changes that affect the test suite, you should consider going back to a Last Call and then jump back to PR immediately 16:36:44 tlr: making a bunch of changes that change interoperablity isn't so good, but it's not a hard rule 16:37:05 tlr: would a change be likely to invalidate previous review? is a key question 16:37:20 bhill2: to the extent that it would change interop, it would change people who are processing reports 16:37:35 dveditz: realistically, I don't think anyone cares about the mime type they're getting 16:37:54 abarth: I think this is a minor issue 16:37:57 jin has joined #webappsec 16:38:10 dveditz: hard to discuss because annevk is the person who raised the issue and he's not here 16:38:22 bhill2: I think he's concerned about a history of working with CORS 16:38:35 bhill2: this doesn't follow the rules we set out for CORS 16:38:58 bhill2: I think there's a good reason to make it an anonymous request 16:39:01 jeffh has joined #webappsec 16:39:28 dveditz: the referer header is in the body of the request even if we strip it from the HTTP headers 16:39:52 bhill2: I think annevk wants us to use the anonymous version of the fetch algorithm 16:40:05 bhill2: I think that's a reasonable request 16:40:13 bhill2: It wouldn't lose a lot 16:40:23 bhill2: it wouldn't break any existing implementations 16:40:55 dveditz: in the back of our minds at moz, we were thinking that the cookies with the report on some site would help sites debug the issue 16:41:06 dveditz: if its reflected, it might be in the request 16:41:23 dveditz: but if its stored, its helpful to know which account is concerned 16:41:36 dveditz: but that's mostly useful for same-origin reports 16:42:03 bhill2: we could make it anonymous if its cross-origin and non-anonymous if it's same-origin 16:42:19 dveditz: if the site is having problems they could move the report-uri to the same site to debug more 16:42:29 bhill2: does that sound reasonable and appropriate? 16:42:44 neil: that works for me 16:43:20 abarth: I think that behavior makes sense, it's just a question fo whether it's worth re-opening 1.0 16:43:46 mkwst_: the cost of re-opening 1.0 depends on how long it will take to close it again 16:44:09 bhill2: do we think this is going to generate objections to moving to PR? 16:44:39 tlr: can you explain the context in more detail 16:44:52 dveditz: (explains how report-uri works in the spec) 16:44:57 [https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-1.0-specification.html] 16:45:53 http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0094.html 16:46:00 is the thread that started this discussion 16:46:02 tlr: sounds like a completely reasonable change (to start with) 16:46:42 tlr: my recommendation would be that if we all think it is the right thing to do, then make the change and then look at the total set of changes to see if we need to re-open the spec 16:46:51 tlr: In any case, I think we can keep the delay down to four weeks 16:47:24 q+ 16:47:31 dveditz: I think the set of people in the room would rather make the change in the 1.1 spec but we're worried about running into resistance in the tag 16:47:45 wseltzer: has their been a privary review of this issue? 16:47:55 wseltzer: this might be something they'll pick up on 16:47:59 ack ws 16:48:24 neil: At the risk of complicating this further, we could consider relaxing the notion of same-origin (e.g., http to https) 16:48:33 neil: The concept of upgrading security 16:48:44 dveditz: this is an issue with the moz implementation 16:48:53 neil: this issue would arise again with this change 16:49:05 dveditz: the simplest way to make the change is in the CORS spec, and there an origin is an origin 16:49:12 dveditz: we certainly wouldn't want to go the other way 16:49:19 transition requirements: http://www.w3.org/2005/10/Process-20051014/process.html#transition-reqs 16:49:48 abarth: I think it makes sense to use the same origin concept everywhere 16:50:01 tlr: to the extent to that you can sell it as a bug fix, you can get it in 16:50:13 tlr: but it's getting sufficient discussion that it should probably go back to last call 16:50:31 tlr: if everyone is on board, then it's easier, but if it requires deeper thought 16:51:06 tlr: if there are a sufficiently large number of these bug fixes, then that changes things 16:51:20 bhill2: I don't think we have any other issues (other than typos) 16:51:58 bhill2: I think it's a small thing. it's just a one sentence change. I'd prefer to see it in 1.0 16:52:28 abarth: I'm becoming convinced that we should fix it 16:52:39 tlr: what about WebKit? 16:52:50 tlr: we used to have them represented via the chrome team 16:53:04 bhill2: ekr has reached out to othermjs 16:53:25 bhill2: we're encourging them to send someone 16:53:51 tlr: one question for this is whether the webkit folks are on board 16:53:57 dveditz: this will be an issue with 1.1 16:54:16 bhill2: it's likely we'll find bugs in 1.0 16:54:41 chair: *squeek* 16:54:49 mkwst_: sorry :( 16:55:00 abarth: :) 16:55:31 tlr: can we communicate with them? 16:55:46 abarth: I can do that right now, but I'll have to stop scribing to do that :) 16:55:57 bhill2: That's it for 1.0 issues that are open 16:56:03 bhill2: except for test cases 16:56:40 zakim, Paypal also has Jeff_Hodges 16:56:40 +Jeff_Hodges; got it 16:58:09 zakim, PayPal also has puhley 16:58:09 +puhley; got it 16:58:51 http://www.w3.org/2011/webappsec/track/actions/open 16:58:58 bhill2: let's go though the tracker for 1.0 issues 16:59:01 we'll start with tracker for 1.1 issues, return to agenda summary 16:59:08 sorry, 1.1 issues 16:59:33 action-97? 16:59:33 ACTION-97 -- Daniel Veditz to propose spec language for policy-uri directive -- due 2012-11-09 -- OPEN 16:59:33 http://www.w3.org/2011/webappsec/track/actions/97 17:00:11 dveditz: I don't know if we have an agreement to do policy-uri, but people inside mozilla want to use it 17:00:23 dveditz: the spec would be to treat it as if it were an additional header 17:00:43 dveditz: the old language said that there couldn't be any other header, but that's likely a mistake 17:01:04 abarth: I think the issue is that it's s sync request 17:01:40 abarth: do the folks in moz want to use it on the network, or for packaged apps 17:01:50 dveditz: the folks who want to use it are the marketplace 17:02:22 abarth: one thing we could do is put it in the spec for now and get some implementation feedback 17:02:34 dveditz: we could resrict it to only working in the header (no the meta tag) 17:02:46 dveditz: I guess it's no worse than blocking on a script tag 17:03:06 bhill2: I wonder if we look a little bit ahead to proposals for http2, we can see header compression, which helps here 17:03:25 bhill2: for me the interesting use case is whether it can be cross-origin 17:03:41 bhill2: if it's cross origin, we you can outsource it, which unlocks some interesting use cases 17:03:51 bhill2: do you have thoughts on that? 17:03:58 dveditz: I had assumed it would be same origin 17:04:05 dveditz: but it might be interesting 17:04:21 puhley: would that end up with a chicken-and-egg problem 17:04:30 dveditz: you could use the policy-uri statement as the grant 17:05:02 bhill2: I think sites are smart enough to decide whether they want to take the latency hit 17:05:15 bhill2: but http2 might make the whole thing not worthwhile 17:05:30 dveditz: I can imagine a bunch of sibling domains with a central server that sets the policy 17:05:46 dveditz: but we don't have good ways of telling which domains are siblings 17:05:57 dveditz: we do have some huerstiics 17:06:45 abarth: I think it's worth experimenting with 17:06:54 dveditz: this is an opt-in thing 17:07:33 abarth: if we do allow crossorigin, we should use CORS so that we know the other origin is ok with you using their policy 17:08:53 abarth: one way to make progress is to put it in the spec for now, try it with moz marketplace, and get back some data from their experience 17:10:00 neil: I haven't thought about this feature much, but the concept of sending these across domains is kind of scary 17:10:08 bhill2: is that different than an iframe 17:10:49 dveditz: can you clarify what you're worried about 17:11:24 neil: the policy is third-party, but the report-uri is first-party again 17:11:39 neil: and the third-party gets compromised 17:12:07 bhill2: I think if you're going to get your policy from a third-party, you've got to trust them 17:12:37 bhill2: I think it's interesting to consider for the spec is whether we're creating opportunities for folks to make the ecosystem more secure 17:12:53 bhill2: many folks might like the opportunity to outsource this tricky stuff 17:14:14 ACTION-115? 17:14:14 ACTION-115 -- Adam Barth to raise ISSUE-15 on the mailing list -- due 2013-02-05 -- OPEN 17:14:14 http://www.w3.org/2011/webappsec/track/actions/115 17:14:37 mkwst_: the 1.1 spec certainly says some things about blob 17:15:08 issue-15? 17:15:08 ISSUE-15 -- How to handle srcdoc, blob:, di: and ways of directly creating content -- open 17:15:08 http://www.w3.org/2011/webappsec/track/issues/15 17:15:50 abarth: the srcdoc would inherit the policy from its parent 17:16:37 [1.1: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html ] 17:16:40 dveditz: its covered by implication, but we should be explicity 17:17:15 abarth: someone just needs to work through the spec and propose how to handle all these cases 17:18:18 dveditz: oh, you mean where does it get the policy from 17:18:30 dveditz: for data URIs, we get the policy from the parent document 17:18:36 abarth: we should do that for srcdoc too 17:18:42 abarth: we just need to write that in the spec somewhere 17:19:49 dveditz: there's an interop issue because different user agents treat data URIs different w.r.t. security 17:19:53 action-109? 17:19:53 ACTION-109 -- Daniel Veditz to add spec language to CSP 1.1 regarding certain directives not honored in META -- due 2013-01-22 -- OPEN 17:19:53 http://www.w3.org/2011/webappsec/track/actions/109 17:20:09 dveditz: I sent mail to the list about that already 17:20:20 dveditz: once I get the password, I'll edit the spec to incorporate that 17:21:45 bhill2: we have some spec text in the spec already 17:22:02 bhill2: we ignore report-uri 17:22:12 abarth: on the list we talked about ignoring sandbox too 17:22:28 dveditz: and for frame-options 17:22:42 dveditz: the browser needs to know about these at the beginning 17:22:53 dveditz: for frame-options and sandbox 17:23:41 abarth: we actually support an x-frame-options meta tag, but I think it's find to skip it for CSP 17:24:07 bhill2: idea to stop honoring the meta tag after the document reaches the "interactive" state 17:24:45 abarth: I don't remember when the doc gets to interactive 17:24:58 mkwst_: google web toolkit might use this technique 17:25:44 bhill2: dveditz previously thought that was crazy, do you still think that? 17:25:49 jeffh has joined #webappsec 17:25:54 dveditz: event allowing it in the head allow some things to be loaded 17:26:11 document.readystate = "Returns "loading" while the document is loading, "interactive" once it is finished parsing but still loading sub-resources, and "complete" once it has loaded." according to MDN. 17:26:17 dveditz: that's more defensible than allowing the document to becoming active 17:26:44 dveditz: I think having in the header is unsafe, but probably defensible in some circumstances 17:27:02 dveditz: if the meta tag comes late, how do we know if it's an attack? 17:27:17 bhill2: is this less necessary now that we allow paths? 17:28:31 abarth: I think it's mostly folks the eval is the real issue 17:28:41 neil: would the DOM API help with this? 17:29:04 abarth: yes, especially if we let the "is eval allowed" state be mutable via the DOM API (either both directions or only in one direction) 17:29:49 action-121? 17:29:49 ACTION-121 -- Adam Barth to email the list with the generic src-nonce proposal (i.e., not specifically for each thing that could be srced) -- due 2013-02-19 -- OPEN 17:29:49 http://www.w3.org/2011/webappsec/track/actions/121 17:30:40 mkwst_: we got hung up on the syntax 17:30:49 mkwst_: I can take an action to make a strawman proposal 17:31:01 mkwst_: we want to leave some room in the syntax for a hash potentially 17:31:18 mkwst_: I think someone was going to put together an experimental implementation, but I'm not sure how far that got 17:31:32 bhill2: we had some language for how to calcuate it for script 17:31:51 dveditz: how does it interact with inline? 17:32:09 dveditz: does the nonce need to be on everything? 17:32:51 abarth: the nonce is an argument to the script-src directive 17:32:56 17:33:09 abarth: so you can list whatever you like 17:33:23 abarth: e.g., script-src 'self' 'nonce-foo' 17:33:23 17:33:50 abarth: which means you could either load from yourself or with a nonce 17:34:02 mkwst_: most valuable for script and style, but we could support it for the other types 17:34:14 bhill2: maybe we should just do it as a generic source type 17:34:41 bhill2: if I want to use data URLs, then if I whitelist all of data, that kind of defeats the point 17:35:12 mkwst_: Yeah, i think that makes sense 17:35:18 mkwst_: its probably easier to specify that way anyway 17:35:33 mkwst_: I'm happy to add it if there's consensus to add it 17:36:09 neil: are we worried about compat? 17:37:35 abarth: I think we want to make sure that content targeting version X continues to work in versions >X as well 17:38:09 but I don't think we need to constain content targeting version X to also work with version bhill2: do we want a length requirement for the nonce? 17:38:37 dveditz: the important thing is that it's not constant 17:38:44 bhill2: the spec already requires that 17:39:01 niel: that's different than for hash 17:39:31 jeffh: the way i've seen this done before is to have a guideline in the spec 17:39:38 jeffh: but not necessarily a strict requirement 17:40:31 tlr: have we thought about interactions with cache? 17:40:39 abarth: it should work fine with caching 17:41:03 tlr: the server should know that the client might get an "old" nonce from the cache 17:41:18 wseltzer: yet another tracking mechanism! 17:41:26 well, the server might not know that -- that's exactly my point. :) 17:41:28 tlr: it's no worse that a global javascript variable 17:41:52 tlr: (sorry, that's what I meant---I just scribed it poorly) 17:42:30 action-125? 17:42:30 ACTION-125 -- Mike West to investigate WHATWG spec text vs RFC 3986 for normalization in CSP -- due 2013-04-02 -- OPEN 17:42:30 http://www.w3.org/2011/webappsec/track/actions/125 17:43:24 bhill2: I'm going to assume that this action is closed 17:43:29 mkwst_: yes 17:43:36 bhill2: ok, i'm going to make it as closed 17:44:39 issue-34? 17:44:39 ISSUE-34 -- Discuss use cases / risks of script access to CSP information, solicit specific public comment on this feature with FPWD -- open 17:44:39 http://www.w3.org/2011/webappsec/track/issues/34 17:44:40 https://www.w3.org/2011/webappsec/track/issues/34 17:44:52 bhill2: one of the proposals was to add an HTTP only directive 17:45:01 bhill2: that would prevent scripts from getting access to the content of the header 17:45:12 bhill2: more importantly see what the report-uri is set to 17:45:28 dveditz: do you mean by using XHR to request the page itself 17:45:36 bhill2: no, I mean via the DOM APIs 17:45:51 niel: what's the threat we're trying to protect? 17:46:16 dveditz: the nonce could be sensitive 17:46:23 mkwst_: you can just read it off a script tag that has it 17:46:26 whether nonce value is a "strict requirement" or not spec-wise depends on the nature of the spec -- for example in a crypto spec it'd likely be MUST level requirements, here it's likely "SHOULD at least" with some further guidance for implementors 17:46:32 bhill2: maybe the report URI? 17:46:53 dveditz: who are you hiding the report-uri from? 17:47:06 dveditz: you can just load the page yourself, it's unlikely to change 17:47:29 bhill2: the site might have a user unique value encoded into the report URI 17:47:43 mkwst_: also related to extensions that inject policies 17:48:03 mkwst_: maybe the page wants to prevent the page from getting reports via the DOM event 17:48:13 ^^^ the extension wants to prevent the page 17:48:28 bhill2: maybe the security policy group is not 100% friends with the developers 17:48:48 abarth: that's why the DOM API is read only 17:49:02 dveditz: we also don't allow a meta policy to be added if there's already an HTTP policy 17:49:51 bhill2: is there a use case for having report-uri in the DOM API at all?? 17:50:24 mkwst_: I'm not sure there's a good use case, but alex russel thinks we should have a robust API that lets you read everything 17:51:18 abarth: If we're going to make it mutable, I'd much rather add the ability to turn off eval (if it's currently enabled). that seems way more useful than being able to add report URIs 17:51:42 dveditz: currently the spec is just a read only version of the effective policy 17:52:34 bhill2: if I wrote an ad block that work via CSP by querying the DOM API 17:52:46 bhill2: the page could figure out if it were active 17:53:17 abarth: they could also just trying the request 17:53:26 dveditz: what's the use case for the API at all? 17:53:58 abarth: it's to let library authors know what the rules are 17:54:53 dveditz: the use case for the first three properties seem reasonable 17:55:06 dveditz: the per-resource ones seem to have weaker use cases 17:55:23 dveditz: I'm not sure what "is active" is for 17:55:41 bhill2: maybe isactive is good as a early-exist from querying 17:55:51 neil: we definitely want the isactive available 17:56:03 s/exist/exit/ 17:56:11 dveditz: neil: do you need the other bits? 17:56:18 neil: we just need the first four 17:56:43 bhill2: maybe the http only option resolves this 17:56:55 dveditz: that means we'd have to lie about the four at the bottom 17:57:36 abarth: if there aren't strong use cases, maybe we should trim down to just the first four rather than adding yet another nob to turn 17:57:43 mkwst_: I think alex is going to be mad at me :) 17:57:59 mkwst_: we can try it and then circle back around if there are compelling use cases 17:58:11 bhill2: maybe ask alex to email the list if he doesn't like the change 17:59:16 dveditz: I'm really opposed to exposing the list of report URIs. there needs to be a really compelling use case. 17:59:32 dveditz: I'd like to avoid adding an HTTP only botch to work around this problem we're creating for ourselves 17:59:48 dveditz: http only in cookies is a mistake 17:59:53 dveditz: the page doesn't need to know everything 18:00:15 dveditz: do we need to hide CSP headers from XMLHttpRequest? 18:00:39 niel: would and XHR response with a CSP header have any effect? 18:01:00 dveditz: I'm not sure if it's going to be specific to the user... maybe something in the report uri 18:01:12 dveditz: by default XHR makes all the headers available, but some are blacklisted 18:02:19 abarth: you can always load a same-origin page in an iframe 18:02:28 abarth: cross-origin won't get credentials 18:02:31 dveditz: that's true 18:02:39 bhill2: did we already just resolve this issue? 18:03:01 abarth: I don't think it's an issue 18:03:14 dveditz: my main worry was the nonce, but that's really the site being silly 18:03:29 bhill2: if you can XHR, then you can already get this information from the body 18:04:20 niel: does this negate removing the DOM APIs? 18:04:32 abarth: not for extension-added CSP, which won't show up on the network 18:04:50 dveditz: our privacy folks were concerned about exposing information about extension-added CSP 18:06:05 bhill2: let's take 5 and then come back 18:16:38 -mkwst_ 18:17:45 (rejoining in a moment) 18:19:06 +mkwst_ 18:24:17 you there mike? 18:24:20 zakim, Paypal also has Tanvi 18:24:20 +Tanvi; got it 18:24:22 i am. 18:25:24 bhill2: should we talk about mutability? 18:25:43 abarth: I think the main thing is wanting to turn off eval if its already on 18:25:53 dveditz: Also inline script and inline style 18:26:01 dveditz: the risk is that a script coudl break the pag 18:26:09 dveditz: but that's already possible 18:26:28 (would you mind speaking up a bit, dveditz?) 18:26:30 dveditz: it's less safe than starting off with everything off, but it can be hard to root out eval from all the libraries 18:26:54 may want to splain in that action wrt "one-way mutablility" what that nominally means 18:26:58 dveditz: but some libraries use eval on an on-gong basis 18:27:11 oh ok, it's getting noted 18:27:11 tanvi has joined #webappsec 18:27:28 bhill2: should we restrict to the head? 18:27:39 "be able to turn off (bunt not on) eval, inline script, incline css 18:27:42 " 18:27:46 abarth: I'm not sure that's needed. the reason to limit meta to the head is to make sure you know who's giving you the policy 18:28:15 mkwst_: the current "API" is to inject a meta tag, which also lets you further limit the page (but not loosening) 18:28:24 dveditz: do you mean once the page has loaded? 18:28:37 mkwst_: yes 18:28:53 abarth: I think that's a workaround for the lack of a real API. we probably want to have a real one instead 18:28:59 mkwst_: yeah 18:29:23 action-127? 18:29:23 ACTION-127 -- Adam Barth to add one-way mutability to policy points exposed in script interface -- due 2013-05-02 -- OPEN 18:29:23 http://www.w3.org/2011/webappsec/track/actions/127 18:29:40 mkwst_: I'll put together a strawman and then we can have deeper discussion on the list 18:29:56 mkwst_: one option is to let the page supply a textual policy 18:30:05 mkwst_: another option is an explicit toggle 18:30:12 neil: I line of like the explicit toggle 18:30:16 jeffh: me too 18:31:02 abarth: one possibility is to make the attributes not be read only but then ignore writes that we don't like 18:31:14 mkwst_: what about limiting the scope of sources? 18:31:37 dveditz: it seems cleaner for you to specify the subdirecty to start with 18:32:07 mkwst_: I can imagine wanting to load libraries at the beginning but then dropping them later 18:32:18 bhill2: that works with the meta tag, maybe we should keep that 18:32:34 mkwst_: I'm not sure its worth making it that complex for starting 18:32:44 mkwst_: we can start with the four-points, but we should keep in mind what use cases we're not addressing 18:33:03 dveditz: I can see the use, but our concern about the meta tag is that it could be an injected attack 18:33:30 dveditz: one way to address our concern is to have a non-meta bit in the policy 18:33:46 dveditz: I'm not sure if that make sense 18:34:04 bhill2: I'm not sure dropping sources is as important any more now that we have path restrictions 18:34:15 jeffh: and the hash 18:34:32 bhill2: now that we're more grainular, now load and then lock isn't as needed 18:35:28 abarth: IMHO, we should just start with the first three and then add more in the future if needed 18:35:55 mkwst_: It's not that complex to implement 18:36:06 https://www.w3.org/2011/webappsec/track/ 18:36:07 mkwst_: but I think it's fine to start with these and move on from there 18:36:16 https://www.w3.org/2011/webappsec/track/actions/127 18:36:40 i'll just add "it's not that complex" to my list of things i might regret saying in the future. :) 18:36:54 dveditz: the spec currently says that if you have a header, then no meta is allowed 18:36:59 dveditz: do you want to re-open that issue 18:37:01 ? 18:37:13 dveditz: I think that's something we should discuss on the mailing list 18:37:27 mkwst_: I think if we have this API, then there's much less value to letting people injection meta tags 18:37:56 abarth: you mean meta tags in the precence of HTTP headers, no in the absence 18:37:58 mkwst_: correct 18:39:54 issue-36? 18:39:54 ISSUE-36 -- Are we interested in considering script-hash as a CSP 1.1 directive? -- open 18:39:54 http://www.w3.org/2011/webappsec/track/issues/36 18:40:03 bhill2: seems like a good idea inline with nonce 18:40:39 bhill2: probably don't want a "script-nonce" directive. instead use a syntax more like a source that can apply to other types 18:40:45 dveditz: how is this related to content integrity 18:40:53 bhill2: there are potentially interesting interactions 18:41:08 bhill2: we could say hash applies to an external script 18:41:37 tanvi: I think it's more interesting for remote content 18:41:52 tanvi: nonce might be more appropriate for inline content 18:41:57 bhill2: hash works well for static documents 18:42:18 tanvi: with hash, CSP header doesn't need to have every single source listed 18:42:31 tanvi: If the javascript changes, then the web sites will break 18:42:42 neil: it should be pre-computed on deploy 18:42:49 tanvi: I'm worried about remote content 18:42:59 tanvi: e.g., google-analytics 18:43:15 bhill2: introduces brittleness that we don't have with URIs 18:43:26 tanvi: maybe we should just keep that in the content integrity spec for later 18:43:36 bhill2: the proposal on the table is to have hash for inline content only 18:43:48 bhill2: you don't think it's useful for line content 18:43:55 tanvi: I don't think it's that useful for inline content 18:44:13 neil: it reduces the complexity 18:44:25 bhill2: e.g., CDNs 18:44:47 abarth: one option is list all hashes in policy 18:45:01 ... other is that script needs to have hash value to execute for remote scripts 18:45:43 dveditz: second is to allow author to relax mixed-content ui or specify a particular version of a resource 18:46:09 dveditz: doesn't protect from injection 18:46:33 bhill2: you're talking about the subresource integrity deliverable 18:47:11 abarth: seems that the two are related 18:47:18 script-src hash:abcde 18:47:24 abarth: different use cases, but you want to at least use the same hash algorithm 18:47:42 let's say abcde is the hash of : "alert(foo)" 18:47:49 script-src 'self' hash-iuneinwoen 18:47:49 there are a couple of options 18:47:58 script-src hash:abcde could match: 18:48:33