K. Jamroendararasame*, T. Matsuzaki, T. Suzuki, and T. Tokuda Department of Computer Science, Tokyo Institute of Technology, JAPAN Two Generators of Secure Web-based Transaction Systems
Contents Motivations Software architectures for Web-based transaction systems Web transition diagrams Web-based transaction system generators T-Web system PF-Web system Evaluation Comparisons & Conclusion
Disadvantages of current approaches Manual consistency and security management Ad hoc construction of processing programs Complex logical structure processing programs No graphical view of overall system behavior
Non-programmers can generate typical Web-based transaction systems. Support of consistency management and standard level of Web security Goals
Purposes (1) A method to describe behavior of Web-based transaction systems graphically Web Transition Diagrams: Representation of overall behavior of Web- based transaction systems Based on pipe/filter software architecture
Purposes (2) Web-based transaction system generators: T-Web system : based on template method PF-Web system : based on functional composition method A method to generate Web-based transaction systems from graphical diagrams
Why two types of generators? For two types of target users T-Web system for non-programmers with : ability to understand overall system behavior, ability to compose Web transition diagrams, ability to differentiate types of processes PF-Web system for non-programmers with : ability to understand overall system behavior, ability to compose Web transition diagrams, ability to give a clear definition of input/output values of processes
Software architectures for Web-based transaction systems
Definitions Client-Server computing systems Web-based transaction systems Web application systems
Software architectures for Web-based transaction systems Processing on the client side scripting languages: JavaScript and VBScript compiled modules: Java applets and ActiveX controls Processing on the server side SSI (Server Side Includes) CGI (Common Gateway Interface) JavaServlet server side scripts: JSP, ASP, PHP, etc. components: EJB and COM+
Software architectures for Web-based transaction systems Processing on both client side and server side client side scripts with server side programs client-server programs communicating by general protocols RMI (Remote Method Invocation) We concentrate on CGI architecture.
Web Transition Diagrams
Overview Representation of overall behavior of Web-based transaction systems Based on Pipe/Filter architecture Filter Pipe Web page Web page Processing program CGI program, Java servlet, etc.
Definitions Fixed Web page node Output Web page node Processing node Database node Page transition link Data-flow link title name Nodes Links
Example: a Seminar Room Booking System Register Confirm1 Error1 USER_LIST {id,pw,em,pin} id pw em SubmitReset home ADD1 <!Blank parameter or id/em already exist> OK NG *****
T-Web system
T-Web system structure Step 1: Compose a Web transition diagram using the editor Step 2: Allow the generator to generate resulting files Step 3: Optionally revise Web pages using a Web page composer Step 4: Place all resulting files on a Web server and run the script to create all database tables
Template Method A template library for processing programs ~15 templates Templates for database manipulations and sending s Automatically support a standard level of Web security For each processing node, users have to: Select a template from the template library, Specify template parameters No coding Reuse of processing program codes
Web transition diagram composition
List of output Web pages Web transition diagram composition
Template library Description Requirement Web transition diagram composition
List of database tables List of database fields List of output Web pages List of input parameters Web transition diagram composition
Generation of Web pages Register ID PW EM home Submit ****** an example of Web pages Register ID PW EM home
$dbname = “ # ” ; $table = “ # ” = (# ); &ReadParse(*in); # > if (&Blank_check(# )){ &connect($dbname); &exist_check($table, #, # ); if ($sth->rows ==0){ # Generation of processing programs and a script an example of templates $dbname = “ booking ” ; $table = “ USER_LIST ” = ( “ ID ”, “ PW ”, “ EM ”, “ PIN ” ); &ReadParse(*in); $ID = $in{ ‘ __ID ’ }; $PW = $in{ ‘ __PW ’ }; $EM = $in{ ‘ __EM ’ }; if (&Blank_check($ID,$EM,$PW)){ &connect($dbname); &exist_check($table, “ ID ”, “ EM ”, $ID,$EM); if ($sth->rows ==0){ $PIN = &PIN_generate($table); <- booking <- USER_LIST <- “ ID ”, “ PW ”, “ EM ”, “ PIN ” <- $ID = $in{'__ID'}; $PW = $in{ ‘ __PW ’ }; $EM = $in{ ‘ __EM ’ }; <- $ID,$EM,$PW <- “ ID ”, “ EM ” $ID,$EM <- $PIN = &PIN_generate($table); <- NULL
PF-Web system
PF-Web system structure Step 1: Compose a Web transition diagram using the Web transition diagram editor and compose a process description using a text editor Step 2: Allow the generator to generate resulting files Step 3: Optionally revise Web pages Step 4: Place all files on Web server PF-Web generator Web transition diagram editor Text editor Web page composer/Text editor Web transition diagram Process description Web page templates Web page templates CGI programs Web-based transaction system
Functional Composition Method Some predefined functions for processing programs ~11 functions Functions for parameter manipulations, database manipulations and sending s In a process description, users have to: Specify behavior of processing programs using predefined functions instead of templates No coding
Web transition diagram composition
Pipe/Filter Relationship Processing Program X Web page A Web page B Pipe P A Pipe P B Filter F X Processing Program X Web page A Web page B1 Pipe P A Pipe P B1 Filter F X1 Web page B2 Pipe P B2 Filter F X2 Processing Program Web page Pipe Filter Database table 1 23
Pipe/Filter Relationship FOO BAR Pipe A Pipe B Filter X Filter Y FOO BAR INP Name INP (BAR) FOO BAR INP SOME_TABLE RESULT STATUS CMD RESULT STATUS A field corresponding to an input element A field corresponding to a visible parameter A field corresponding to a hidden parameter input fields output fields
Process description A set of equations and functions of all processing programs For each processing program, it describes all filters. For each filter, it describes: an output Web page of the filter, a condition which the filter can be activated, values of output fields in terms of input fields
process add1 { error1 if i.ID=="" || i.PW=="" || i.EM=="" || db_ntuples(db_select("*",i.USER_LIST, "WHERE ID=‘%s’",i.ID))>0 with { o.USER_LIST=i.USER_LIST } confirm1 otherwise { pin=generatePIN(i.ID, i.PW, i.EM) o.PIN=pin o.EM=i.EM o.USER_LIST=db_insert(i.USER_LIST, ”VALUES (’%s’,’%s’,’%s’,%d)”, i.ID, i.PW, i.EM, pin) } Process description example
confirm1 __#EM__ confirm1 (PIN) Generation of Web pages
... &readFormData; &openDB;... $v_prev=&db_select( "ID", $i_USER_LIST, "WHERE ID='%s'", $i_ID ); if ($i_ID eq "" || $i_PW eq "" || $i_EM eq "" || &db_ntuples( $v_prev ) > 0) { $o_USER_LIST = $i_USER_LIST;... &_gen_error1_page; } else { $v_pin=&generatePIN( $i_ID, $i_PW, $i_EM ); $o_EM = $i_EM; $o_PIN = $v_pin; $o_USER_LIST = &db_insert( $i_USER_LIST, "VALUES ('%s','%s','%s',%d)", $i_ID, $i_PW, $i_EM, $v_pin );... &_gen_confirm1_page; } &closeDB; exit; Generation of processing programs
sub _gen_confirm1_page { $OUT{'EM'}=$o_EM; $OUT{'PIN'}=$o_PIN; &genhtml(‘./roombooking/confirm1.html',%OUT); } sub _gen_error1_page { &genhtml(‘./roombooking/error1.html',%OUT); } sub readFormData { %VAR=&decodeFormData; $i_EM=$VAR{'EM'}; &checkscalar($i_EM,80); $i_PW=$VAR{'PW'}; &checkscalar($i_PW,40); $i_ID=$VAR{'ID'}; &checkscalar($i_ID,20); } Generation of processing programs
Evaluation
12 34 Last update: 3 start of session end of session program execution refused program execution allowed Consistency management 0 By adding some checking codes to detect un- updated input parameters
Security management Web security from common types of Web site attacks By adding some checking codes to processing programs and CGI libraries Examples of codes : for denying unacceptable amount of input parameters over-maximum-length input parameter for denying unacceptable format of input parameters HTML tags abnormal-formatted addresses
Evaluation Consistency management and standard secure methods are provided. T-Web & PF-Web system can generate: typical Web-based transaction systems based on CGI architecture examples: Room booking systems Guest book systems Shopping cart systems No programming ability is necessary. Universality T-Web: depending on the number of templates PF-Web: depending on the composition of a process description
Results: a seminar room booking system
Comparisons & Conclusion
Comparisons Web page composersOur approaches Visual composition of Web pages Manual writing processing programs Manual management of consistency and security Visual composition of the whole system Automatic generation of processing programs from templates or a process description Automatic management of consistency and security
Comparisons Server side scripts & development tools (Ex. ASP + Microsoft’s Visual InterDev) Our approaches Easily producing of Web pages by server side scripts A site diagram representing relationship among Web pages and server side scripts Procedural programming General producing of Web pages No server side script A Web transition diagram representing relationship among Web pages, processing programs, and databases No procedural programming, but specifying templates with their parameters or composition of a process description
Comparisons T-Web systemPF-Web system Provides an editor for Web transition diagrams composition The generator generates processing programs from templates and template parameters. System proficiency is depending on the number of templates and users’ ability to select and specify template parameters. Provides an editor for Web transition diagrams composition The generator generates processing programs from a process description. System proficiency is depending on users’ ability to compose a process description.
Conclusion Web transition diagrams T-Web system & PF-Web system: compose Web transition diagrams generate Web-based transaction systems Future work: improvement of consistency and security level implementation of a generator for Web-based transaction systems based on other architectures