28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A Comprehensive System to Develop Secure Web Accessible Databases<br />

1. Introduction<br />

Robert Buccigrossi<br />

Turner Consult<strong>in</strong>g Group and the University of Pennsylvania, USA<br />

butch@gradient.cis.upenn.edu<br />

Albert Crowley<br />

Turner Consult<strong>in</strong>g Group, USA<br />

crowley@www.tcg-<strong>in</strong>c.com<br />

Daniel Turner<br />

President - Turner Consult<strong>in</strong>g Group, USA<br />

tcg@us.net<br />

Abstract: The World Wide Web (WWW) provides a unique opportunity for the development<br />

of database applications that are system <strong>in</strong>dependent and accessible to everyone on the<br />

Internet. Sometimes, though, an application is needed that has a distributed user base, but<br />

will conta<strong>in</strong> data that should not be accessible outside a given set of users.<br />

In this paper, we describe a system of develop<strong>in</strong>g applications with Web front-ends which<br />

constra<strong>in</strong> both the userbase and the allowable actions that <strong>in</strong>dividual users may take. This<br />

system is composed of three ma<strong>in</strong> concepts: the secure loop, which is a method of passwordprotect<strong>in</strong>g<br />

Web pages, the swap, which reta<strong>in</strong>s the state of a user between execution of CGI<br />

scripts, and the lifetime of an <strong>in</strong>put form, which is a modularization of the tasks that a<br />

general <strong>in</strong>put form should complete. It is our hope that through the use of this system<br />

platform <strong>in</strong>dependent application <strong>in</strong>terfaces will flourish on the Internet.<br />

The World Wide Web (WWW) [Berners-Lee et al. 1994] provides a unique opportunity for the development of<br />

applications that are system <strong>in</strong>dependent and accessible to everyone on the Internet. For example, if the Web<br />

were used as a front-end to a database, the capability of modify<strong>in</strong>g and query<strong>in</strong>g that database would become<br />

open to everyone with access to a Web browser. Sometimes, though, an application is needed that has a<br />

distributed user base, but will conta<strong>in</strong> data that should not be accessible outside a given set of users.<br />

In this paper, we describe a system of develop<strong>in</strong>g applications with Web front-ends that can be accessed only<br />

by a given set of users. A graphical <strong>in</strong>terpretation of this system is presented <strong>in</strong> [Figure 1]. Between the user<br />

and the database lies the collection of Common Gateway Interface (CGI) scripts used to process form data,<br />

access the database, and create new pages to be displayed to the user. [NCSA 1996]<br />

With CGI scripts, we develop several layers of rout<strong>in</strong>es to implement the database application. One layer,<br />

which we call the secure loop, is a method of verify<strong>in</strong>g the user at every access. The swap is a method of<br />

reta<strong>in</strong><strong>in</strong>g the state of partially completed forms. F<strong>in</strong>ally, the query rout<strong>in</strong>es are the actual procedures that<br />

implement the database access.<br />

This system has been used to successfully develop Web accessible databases for the National Institute of<br />

Health. [TCG 1995] Through this experience, we have created simple guidel<strong>in</strong>es for design<strong>in</strong>g CGI scripts for<br />

easier writ<strong>in</strong>g and ma<strong>in</strong>tenance. F<strong>in</strong>ally, we compare this system of application development with other<br />

exist<strong>in</strong>g methods.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!