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.

Display<br />

Password<br />

Screen<br />

Check User<br />

<strong>in</strong> Database<br />

yes<br />

no<br />

Valid<br />

User?<br />

Generate<br />

Ticket<br />

Process<br />

Form Data<br />

Script Actions<br />

Store Ticket<br />

<strong>in</strong> Database<br />

yes<br />

Valid Ticket<br />

For User?<br />

no<br />

Figure 2: The Security Loop<br />

Generate<br />

New Form<br />

Form sent<br />

to Browser<br />

by Server<br />

Check Ticket<br />

<strong>in</strong> Database<br />

User Submits<br />

Form Data<br />

Server Executes<br />

Script<br />

4. Generate New Form: Based on the results of the processed form or current state associated with the user, a<br />

new form is generated (for example display<strong>in</strong>g the results of a query or notify<strong>in</strong>g the user of errors <strong>in</strong> a<br />

form they have completed). The username and ticket must be added to any form dest<strong>in</strong>ation or l<strong>in</strong>k<br />

def<strong>in</strong>ition so that the next script can execute securely.<br />

5. User Interaction with the Form: The Web server passes the new form to the browser, which <strong>in</strong> turn displays<br />

it to the user. When the user submits the form, the form data is then passed back to the Web server which<br />

executes a new script to process it. This script beg<strong>in</strong>s the cycle aga<strong>in</strong>.<br />

The only way that a user can access the application is by enter<strong>in</strong>g via the log<strong>in</strong> screen. Because every other<br />

script must be accompanied by a username and a ticket there is no other way to enter the secure loop. S<strong>in</strong>ce we<br />

keep the usernames, passwords and tickets <strong>in</strong> the application database, the Web <strong>in</strong>terface is as secure as<br />

directly access<strong>in</strong>g the database through other client/server <strong>in</strong>terfaces.<br />

3.2.3 Cach<strong>in</strong>g<br />

Cach<strong>in</strong>g decreases the time required to access Web documents by temporarily stor<strong>in</strong>g them <strong>in</strong> an <strong>in</strong>termediate<br />

location. Pages copied to a local computer can be displayed more quickly than if retrieved from a remote site.<br />

If results of CGI scripts are cached by an Internet Service Provider or cached locally by a browser, sensitive<br />

<strong>in</strong><strong>format</strong>ion could be made available to anyone with access to the cache. Though recent developments <strong>in</strong><br />

cach<strong>in</strong>g have reduced this problem [Gwertzan, 1996], timed <strong>in</strong>validation of tickets can prevent an<br />

unauthorized user from enter<strong>in</strong>g the secure loop from the start<strong>in</strong>g po<strong>in</strong>t of a cached document.<br />

4. Form Consistency and Ma<strong>in</strong>tenance Issues<br />

In a "user-friendly" application, <strong>in</strong>valid data entry should result <strong>in</strong> <strong>in</strong>structive error messages, or valid entry<br />

should result <strong>in</strong> context sensitive verification screens. Because of the <strong>in</strong>herent "statelessness" of Web<br />

applications, these common tasks are difficult to implement without somehow associat<strong>in</strong>g form contents and<br />

other important <strong>in</strong><strong>format</strong>ion with <strong>in</strong>dividual users. In this section, we <strong>in</strong>troduce the “swap,” which solves this<br />

problem by associat<strong>in</strong>g tag/value pairs of str<strong>in</strong>gs with a user and the current screen they are us<strong>in</strong>g. Also, we<br />

present methods to improve the ease of development and ma<strong>in</strong>tenance of scripts that implement <strong>in</strong>put forms.

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

Saved successfully!

Ooh no, something went wrong!