Anne van Kesteren wrote:

Below is some sort of proposal of how the access control thing can work. (Lots of things are not new, fwiw.) It essentially says that the specification only defines an access control policy. When that policy applies and how its various return states are treated depends on the specification that uses it.
I can go either way on this. The original NOTE was targeted to a very specific use-case and not intended to be a generalized access mechanism. That use case (XML read by applications running in a browser) is an important use case by itself.

I don't feel like we've analyzed enough general use-cases for access-control to say that the mechanism is sufficiently general for the variety of use-cases that have been mentioned (restricting access to images, etc.). That said, we could also leave that analysis exercise to those writing the specification that references this. I do worry that if there are two separate access-control use cases applicable to a single document (disallow access for X, but allow access for Y) then we could be in conflict.
The allow and deny ruleset, together with the request URI (referrer) form an input for the access control policy. The outcome is either "access denied", "access granted" or "default" (or something along those lines).

Specifications using this specification must define for which resources the access control policy is applicable. Those specifications must also define what "access denied", "access granted" and "default" mean in the context of that specification (throwing an exception, etc.). (XXX: I suppose that in most cases "default" is treated as "access denied". Not sure how to say that here though.)
Yes, though if we want to make it general, I don't think we can specify a default. For instance, the <img src=""> case should probably default to allow.

XXX: Probably say something about this only being safe for GET and HEAD requests.

When fetching a resource the following algorithm must be followed:

When a resource is retrieved over HTTP extract a deny and allow ruleset from the Access-Control (XXX: Content-Access-Control?) header(s). That, together with the request URI, forms an input for the access control policy. If the result is "access denied" return that and terminate the algorithm.
I missed the justification for HTTP overriding document level? Is this just to support priority of protocol over content? The use case that a web-server might generally disallow, but a document wants to specifically allow in certain cases seems quite valid.
--Brad

Otherwise, combine the rulesets from HTTP with those from the document level (given by the processing instruction(s)) and, together with the request URI, give these as input to the access control policy. Return one of the three states.

If any of the HTTP level or processing instructions are in error (invalid syntax, etc.) user agents must return "access denied" and terminate the algorithm.


--Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>




Reply via email to