On Mon, 10 Dec 2007 18:57:41 +0100, Williams, Stuart (HP Labs, Bristol)
<[EMAIL PROTECTED]> wrote:
I have an action from the TAG to review
http://www.w3.org/TR/2007/WD-access-control-20071126/
Please regard the attached as personal comments. The TAG may
subsequently choose to support some, all or none of them.
Please regard the responses below as responses of the WAF WG. The WG may
override my responses in subsequent discussion. (:-), though for real.)
There are some questions included as well.
I think that the early part of the document (mostly the introduction) is
written in a way that could be understood to suggest that resources
rather than their representations are being retrieved.
[... about http://www.w3.org/TR/webarch ...]
I tried making it a more clear by talking about "Web page" and "image" and
"data of a resource" which seems more in line with AWWW while remaining
relatively easy to read and understandable to myself. :-) I hope that
helps.
The introduction would benefit from a little more explaination of what a
"cross-site" or "cross-domain" (pick juts one term) request is.
I added such an explanation. I also added it to the abstract.
The opening sentence suggests that HTML img and script elements can
result in "cross-site" requests. That leaves me puzzled, unless what it
is intended to indicate is that img and script tags can result in the
retrieval of scripts (in the case of IMG I assume through further
references to scripts say from an SVG image) and the subsequent client
site execution of those scripts can give rise to "cross-site" requests.
The idea is that a Web page on domain A can use an image on domain B by
means of <img>. The draft now clearly states this.
Suggest pre-pending (or wteo):
"A cross-site requests occurs when a retrieved resource representation
results in the loading of scripted client behaviours which, during
execution, request access resources in different domain from first
resource."
Cross-site requests in the draft are not restricted to scripting. For
instance, attaching cross-site XBL bindings does not have to involve
scripting.
2) Re: 4.3 <?access-control?> PI
The 2nd para has not been fully updated to cover the addition of the
"method" pseudo attribute. eg. three->four and the value of a "method"
is *not* an "access item".
Actually, it is. It talks about three attributes of type X and one
attribute of type Y.
3) Re: 5.1.1 Generic Cross-site Request Algorithm
Otherwise, let current request URI be the new URI and then
follow these set of steps:
...
2. Otherwise, transparently follow the redirect while
observing the set of request rules.
Suggest adding forward references to 5.1.2 and 5.1.3 on the phrase
'request rules' - I was initially confused about what was being referred
to.
Would moving this down help? Similarly to your suggestion for the
processing model algorithm?
Substantive:
===========
1) Re: 5.1.3 Cross-site Non-Get Access Request - step 5 Otherwise Clause
Step 5 is not an otherwise clause. I'll assume that was a mistake.
In the case of PUT, POST, DELETE the network operation has already taken
place - an "access control check" is a bit futile at this point, though
it may expose that the access policy has changed. Seems a bit odd to
force a fail in this situation, particularly if the network operation
has actually succeeded.
The access policy protects the information that is part of the response.
The request itself is protected by the authorization request that is made
before this one (or the authorization request cache).
2) Re Section 5 Processing Model
This section is very hard to read: partly because the algorithm has a
very imperative style - and it would help to have an explicit statement
of the intention of the algorithm (more below); partly because of the
order in which elements of the algorithm are introduced eg. "5.2.1
Shared Algorithms" would be better understood if presented *after*
"5.2.2 Access Control Check Algorithm"; partly due to the style of some
parts of the algorithm and the use of flags to couple pieces of the
algorithm - particularly the shared algorithms at 5.2.1 which have steps
that say "...go to the next overall set of steps." or "Terminate the
overall algorithm and... " which are first read with no sense of the
overaal algorithm from which they are invoked.
Yes, I agree it is kind of tricky. I can move the section around if that
would make it better and maybe include your steps below as an informative
guide to the algorithm. Would that help?
On the intention of the algorithm: I intuit it to be the following,
based on reading it's description:
1) For a given allow or deny access rule:
the set of allowed or denied request URIs is:
a) the union of all those URI which match one or more
allow or deny pattern, 'minus'
b) the set of URIs that match one or more of any
exclude pattern that is present.
Yes.
2) Allow access is by method - for a given method the allow set is the
union of all allow rules
which cite that method (ie. exclusions are localised to each rule) -
arising from
either access-control headers or embedded access-control PIs.
Yes.
3) Deny access is method independent: the overall set of denied request
URIs is the union of all
such sets arising from either access-control headers or embedded
access-control PIs.
Yes.
4) Access denial takes precidence: if a request URI is present in both
the overall deny and
the relevant method specifc allow sets, the access is denied.
Yes.
5) Rule ordering and partitioning between http headers and embedded PIs
is irrelvant to
the result of the algorithm
For XML documents, yes.
Note: the operation of the algorithm as described checks set membership
in an intentional
way through pattern matching rather than in an extensional manner (by
enumerating members).
I'm sorry, I don't quite follow this comment.
I think this is a correct statement of the intent of the algorithm. If
that is indeed the case it is a basis on which test cases may be
specified.
Also, in large part is then serves as an expression of what the access
control check is and ANY algorithm which satisfies those intentions
would do - in fact in large part it oviated the need to articulate any
particular algorithm in section 5.
--
Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>