The approach presented in this work identifies and corrects erroneous or insufficient validation of the user inputs by automatically discovering inconsistencies between client- and server-side input validation functions. Inconsistencies among input validation function can lead to efficiency and security problems. Developers typically perform redundant input validation in both the client and the server components of a web application. Client-side validation is used to improve the responsiveness of the application, as it allows for responding without communicating with the server, whereas server-side validation is necessary for security reasons, as malicious users can easily circumvent client-side checks. The main idea behind this approach is that it is possible to leverage the redundancy in these checks to automatically identify inconsistencies within input validation functions. In fact, the approach extracts client- and server-side input validation functions, models them as deterministic finite automata and compares client- and server-side deterministic finite automata to identify, report and correct the inconsistencies between the two sets of checks. The evaluation of the approach and its implementation are promising. When applied to a set of real-world web applications, the prototype was able to automatically identify and correct a large number of inconsistencies detected in their input validation functions.

Questo lavoro presenta un approccio per identificare e correggere, in maniera automatica, errori nelle funzioni di validazione dell'input nel contesto delle applicazioni web. Gli errori nelle funzioni di validazione dell'input possono portare a problemi di efficienza e sicurezza all'interno delle corrispondenti applicazione web. Solitamente gli sviluppatori compiono validazione dell'input in maniera ridondante, infatti, lo stesso input viene validato sia a lato client che a lato server. A lato client la validazione dell'input usata per migliorare la reattività delle applicazioni web. A lato server, invece, l'input viene validato per motivi di sicurezza, infatti, i controlli di validazione fatti a lato client possono essere facilmente aggirati da utenti maligni. L'idea principale di questo lavoro quella di usare questa ridondanza nel processo di validazione dell'input per determinare gli errori nelle funzioni stesse di validazione. L'approccio descritto, estrae le funzioni di validazione dalle applicazioni web, modella tutti gli input accettati da queste funzioni come automi a stati finiti e confronta gli automi a lato client con i corrispondenti automi a lato server per poter identificare e correggere le inconsistenze. L'implementazione dell'approccio mostra risultati promettenti. Infatti, quando sono state analizzate sette applicazioni web reali, stato possibile identificare e correggere un ampio numero di errori nel processo di validazione dell'input.

Automatic detection and correction of client side and server side input validation inconsistencies

FAZZINI, MATTIA
2011/2012

Abstract

The approach presented in this work identifies and corrects erroneous or insufficient validation of the user inputs by automatically discovering inconsistencies between client- and server-side input validation functions. Inconsistencies among input validation function can lead to efficiency and security problems. Developers typically perform redundant input validation in both the client and the server components of a web application. Client-side validation is used to improve the responsiveness of the application, as it allows for responding without communicating with the server, whereas server-side validation is necessary for security reasons, as malicious users can easily circumvent client-side checks. The main idea behind this approach is that it is possible to leverage the redundancy in these checks to automatically identify inconsistencies within input validation functions. In fact, the approach extracts client- and server-side input validation functions, models them as deterministic finite automata and compares client- and server-side deterministic finite automata to identify, report and correct the inconsistencies between the two sets of checks. The evaluation of the approach and its implementation are promising. When applied to a set of real-world web applications, the prototype was able to automatically identify and correct a large number of inconsistencies detected in their input validation functions.
ORSO, ALESSANDRO
BUY, UGO
TORCHIANO, MARCO
ING V - Scuola di Ingegneria dell'Informazione
25-lug-2012
2011/2012
Questo lavoro presenta un approccio per identificare e correggere, in maniera automatica, errori nelle funzioni di validazione dell'input nel contesto delle applicazioni web. Gli errori nelle funzioni di validazione dell'input possono portare a problemi di efficienza e sicurezza all'interno delle corrispondenti applicazione web. Solitamente gli sviluppatori compiono validazione dell'input in maniera ridondante, infatti, lo stesso input viene validato sia a lato client che a lato server. A lato client la validazione dell'input usata per migliorare la reattività delle applicazioni web. A lato server, invece, l'input viene validato per motivi di sicurezza, infatti, i controlli di validazione fatti a lato client possono essere facilmente aggirati da utenti maligni. L'idea principale di questo lavoro quella di usare questa ridondanza nel processo di validazione dell'input per determinare gli errori nelle funzioni stesse di validazione. L'approccio descritto, estrae le funzioni di validazione dalle applicazioni web, modella tutti gli input accettati da queste funzioni come automi a stati finiti e confronta gli automi a lato client con i corrispondenti automi a lato server per poter identificare e correggere le inconsistenze. L'implementazione dell'approccio mostra risultati promettenti. Infatti, quando sono state analizzate sette applicazioni web reali, stato possibile identificare e correggere un ampio numero di errori nel processo di validazione dell'input.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2012_07_Fazzini.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 1.42 MB
Formato Adobe PDF
1.42 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/60761