- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Sun, 04 Mar 2007 14:46:16 +0100
- To: WebDAV WG <w3c-dist-auth@w3.org>
Proposed Changes (see also <http://ietf.osafoundation.org:8080/bugzilla/show_bug.cgi?id=237> and <http://greenbytes.de/tech/webdav/draft-reschke-webdav-rfc2518bis-latest.html#rfc.issue.bz237>: Proposed changes: +++ NEW (add to 20.8) One specific attack scenario deserves special mention here: with the arrival of the "XMLHttpRequest" API (see [WD-XMLHttpRequest]), user agents have acquired the capability to submit arbitrary HTTP requests against the server the content was obtained from. With the well- known semantics of HTTP verbs such as PUT and DELETE, the following attack becomes possible: 1. Alice prepares an HTML page with embedded Javascript code that will submit a DELETE request against the URI http://www.example.com/users/bob/ (a resource she has not write access to). 2. Alice stores this HTML page at http://www.example.com/users/alice/readme.html, a resource she has write access to. 3. Alice emails Bob a link to http://www.example.com/users/alice/readme.html, for which he has read access once authenticated. 4. Bob follows the link, authenticates, and the embedded script code executes the DELETE request against http://www.example.com/users/bob/ while being authenticated as Bob. This attack relies on the common risk of collaboratively authoring resources on the same server, which requires a certain amount of trust between the users. However, even an action usually considered as "safe", such as opening an HTML page in a web browser, can cause arbitrary HTTP methods to be invoked. Note that WebDAV isn't the root cause for this vulnerability, it just makes it more visible. Potential steps to reduce the risks associated with this attack include: o Separating server domains for authoring (read/write) and publicly serving content. o Disallowing certain content (such as scripts in HTML pages) altogether, as discussed above. o Using user agents that follow Section 9.1.1 of [RFC2616], in that they do not allow unsafe methods to be executed without making the user aware of the consequences - unfortunately, none of today's browsers is doing that. NEW (add to informative references): [WD-XMLHttpRequest] van Kesteren, A., "The XMLHttpRequest Object", W3C WD- XMLHttpRequest-20070227, February 2007, <http://www.w3.org/TR/2007/WD-XMLHttpRequest-20070227/>. Work in progress. +++ Best regards, Julian
Received on Sunday, 4 March 2007 13:47:41 UTC