- From: Robin Berjon <robin@berjon.com>
- Date: Thu, 26 Mar 2009 17:04:03 +0100
- To: public-webapps WG <public-webapps@w3.org>
Hi,
in the same spirit of the resolution that we made with L10N based on
the principle that we define something simple now and add more complex
stuff once developers have described real-world issues that we don't
address, I would like to propose a similarly simple approach for
<access>.
I think there are three primary use cases which we genuinely need to
address:
- a widget that access a single source, or a small set of sources
(e.g. three servers for a mashup, or http and https on the same);
- a widget like the above, but the service uses multiple subdomains
to distribute its load (e.g. web42.example.org,
web2017.images.example.org...);
- a widget that has to access pretty much any HTTP resource (e.g. an
RSS reader).
There are possibly cases in which we might want to allow a widget to
access ports 8042 through to 8077, and 99, 1010, 2017, on some
combinations of gopher and sftp for all of dahut.fr, dahut.org, and
dahut.com but I don't think that those fall in the 80%.
So here goes (not in spec-ese):
"""
The <access> element is used to restrict a widget's access to a
limited set of network resources. In the absence of an <access>
element, all access to network resources is forbidden.
The <access> element has a single @href attribute the content of which
is an IRI-like string. The access opening that is specified by that
string is defined as follows:
- the scheme component MUST be present, and access is granted only
for that scheme; and
- the host component MUST be present. If it begins with "*." then
the host that follows the "*." is granted access to, as well as all of
its lower-level domains; otherwise access is only granted for that
domain; and
- if the port component is absent, it is considered to be specified
to be the default for the provided scheme. Access is granted only to
that port; and
- if the path and query string component is present, then access is
granted for any path and query string that starts with the specified
string. It is treated as an opaque string, no attempt must be made to
map to potential directories on the remote server; and
- if a fragment component is specified, it must be ignored.
"""
I think that the above, once tightened up for proper spec wording,
gives us our basic three use cases (given that one can easily specify
a handful of <access> elements) at a minimal cost. Derived on the
above, once we see which paths are trodden and what people complain
about (and we can rely on complaints to reach us) we can extend the
element to provide it with much more granular matching (simply by
giving it children or other attributes that override href). The point
here is not to make it perfect, but to make it good enough to ship.
Comments?
--
Robin Berjon - http://berjon.com/
Feel like hiring me? Go to http://robineko.com/
Received on Thursday, 26 March 2009 16:04:41 UTC