Copyright (C) 2002 Philip Dorrell
Back to Womcat Home Page
Womcat Bookmarks has been implemented as a local web application. The three components are:
All of these components potentially need to be secured.
If you run an application on a local web server that accesses otherwise protected data, this application can be accessed indirectly by a malicious user who places URL's on web pages under their control that are URL's for the local web application.
For example, in Womcat Bookmarks, a user might add a URL that inserts an offensive web site into your personal bookmarks list.
It is in the nature of web browsing that users do not, and sometimes cannot, verify URL's before clicking on links that activate them. So URL's that "do something" present a problem.
The solution I have used is for the local web application to generate a unique password every time it starts up. URL's that do something other than read and display data require this password before they will execute. The application places the password into all forms that it generates. In effect this authenticates form submissions received from the browser as being sourced from the application itself.
It is not possible to use URL passwords to authenticate ordinary "<A HREF"-style links, for the following reason: browsers "leak" contents of a page URL, including all query parameters, when accessing links from that page, via "Referer" headers. To avoid this leakage, all authenticated web browser requests should be made via forms using the POST method, as web browsers do not include POST parameters in "Referer" headers.
Note that it cannot be helped that a user of the Womcat Bookmarks application will leak URL's for Womcat Bookmarks application pages to web sites whose links are on those pages, unless the user has a web browser that allows total suppression of "Referer" headers, or if they use a local web proxy to achieve the same effect. For example, if you select a link while browsing the subject "Mathematics", the web master at the site hosting that link will receive a "Referer" heading containing the link "http://localhost:17290/womcat/object?class=Subject&i_subject=en%2FMathematics&action=show", and will know that the user accessing their page was referred to it by their Womcat Bookmarks application.