Jonas Sicking wrote:

Hi All,

So I have some feedback to this proposal. I think Hixie might have missunderstood me and while I agreed to him publishing it, it's definitely not _from_ me.

So there are a couple of pretty big security concerns that I have with this proposal.

1.
It introduces ordering issues. Consider the following setup; A server contains two resources, /dir/A and /dir/B, and returns the following replies to OPTIONS requests:

/dir/
Access-Control:allow <*> method POST
Method-Check-Policy-Path: /dir/
Method-Check-Max-Age:3600

/dir/A
Access-Control:allow <*> method POST
Method-Check-Policy-Path: /dir/
Method-Check-Max-Age:3600

/dir/B
Access-Control:deny <*> method POST
Method-Check-Max-Age:3600


If a UA now accesses resource A it would do OPTIONS requests to /dir/A and then /dir/ and result in "allow <*> method POST" being cached as the policy for all resources under /dir/.

If the UA then tries to do a POST to resource B this would be performed without any OPTIONS requests. I.e. the POST to B would be successful.

However if the UA first tries to do a POST to resource B, the UA would first do an OPTIONS request to /dir/B and then abort. I.e. the POST to B would be unsuccessful.

Note that this isn't a problem with 'deny' rules. The exact same problem is there if OPTIONS requests to /dir/B doesn't return any AC headers at all. Just wanted the example to be more specific.

/ Jonas

Reply via email to