02.06.2013 Views

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

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.

CAPITOLO II - Talete: Autenticazione ed Autorizzazione<br />

regole CSS e da script che possono essere eseguiti <strong>di</strong>rettamente dal client (tipicamente<br />

Javascript).<br />

È stato già accennato che il server prima <strong>di</strong> dare <strong>una</strong> risposta deve compiere un’elaborazione.<br />

Nel caso si tratti <strong>della</strong> richiesta <strong>di</strong> <strong>una</strong> semplice pagina HMTL presente sulla macchina del<br />

server (detta "statica"), l’elaborazione consiste solo nel prelievo del file dalle cartelle locali. Il<br />

client potrebbe richiedere anche <strong>una</strong> pagina che non è presente sulle cartelle locali ma che deve<br />

essere generata <strong>di</strong>namicamente. In questo caso la richiesta è per <strong>una</strong> risorsa che contiene un<br />

programma (uno script lato server) fatto per "costruire" la pagina <strong>di</strong> risposta (detta “<strong>di</strong>namica”).<br />

Questo script viene elaborato da un altro componente che è l’application server. Riepilogando<br />

quando arriva <strong>una</strong> richiesta per <strong>una</strong> pagina <strong>di</strong>namica, il server la manda all’application server<br />

che risponde con la pagina HTML costruita ad hoc. Il motore <strong>di</strong> processamento Asp.NET si<br />

occupa <strong>di</strong> compilare, se necessario, ed eseguire il co<strong>di</strong>ce <strong>della</strong> pagina che può essere scritto in<br />

uno dei linguaggi del framework .NET, in genere C# o VB.net.<br />

Nei più noti linguaggi <strong>di</strong> scripting lato server, come JSP e PHP e nelle stesse vecchie ASP, il<br />

co<strong>di</strong>ce lato server viene scritto all’interno <strong>della</strong> pagina, nei punti in cui è necessaria<br />

un’interazione con il server. Il web server in questi casi incontra il co<strong>di</strong>ce server side e si<br />

occupa <strong>di</strong> inviarlo all’<strong>applicazione</strong> che lo può tradurre. Tutto il co<strong>di</strong>ce client side (HTML,<br />

JavaScript), invece, viene inviato al client senza elaborazioni. In Asp.NET il processo è<br />

completamente <strong>di</strong>fferente.<br />

Quando <strong>una</strong> pagina è richiesta per la prima volta al server Asp.NET, viene compilata, e<br />

trasformata in un class file scritto nel linguaggio MSIL. Il co<strong>di</strong>ce client side viene convertito in<br />

un insieme <strong>di</strong> espressioni <strong>di</strong> tipo output.Write (in modo simile a quanto fanno i Java application<br />

server quando convertono le pagine JSP nelle corrispondenti servlet). Le classi compilate non<br />

necessitano <strong>di</strong> essere ricompilate quando vengono richieste <strong>una</strong> seconda volta salvo che non<br />

abbiano subito delle mo<strong>di</strong>fiche.<br />

Tipicamente un’<strong>applicazione</strong> Asp.NET consiste in un insieme <strong>di</strong> web form, ogn<strong>una</strong> delle quali<br />

contiene oggetti. Sono oggetti ospitati ad esempio i pezzi <strong>di</strong> co<strong>di</strong>ce lato client (HTML), i<br />

controlli server ed altri oggetti ere<strong>di</strong>tati ad esempio tramite la <strong>di</strong>rettiva import. Se si confronta<br />

la velocità <strong>di</strong> Asp.NET rispetto ad ASP, è possibile notare un rallentamento <strong>di</strong> prestazioni<br />

14

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

Saved successfully!

Ooh no, something went wrong!