Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ CGI :: Form e metodo POST :: Indice CGI

Form e metodo POST

Categoria: CGI Inserito il: 27-04-2006 Stampa (22607 click)

Il metodo GET, pur utilissimo, pone dei problemi di sicurezza non indifferenti in sede di sviluppo: innanzitutto bisogna considerare che il passaggio dei dati in querystring viene effettuato "in chiaro", questo vuol dire che nel momento in cui viene prodotta un'URL sulla base dell'input di un utente, questa potrà essere visibile a chiunque possa controllare le fasi della sua navigazione; se vengono passati in querystring alcuni dati "sensibili", come per esempio delle password, le implicazioni in termini di sicurezza divengono chiare anche ai profani della programmazione.

In secondo luogo, un applicativo che funziona sulla base di parametri trasmessi tramite una querystring produce differenti comportamenti sulla base degli argomenti che raccoglie; teoricamente e in mancanza di oppurtune clausole di controllo, tramite una querystring è possibile far passare di tutto ad uno script CGI, comprese istruzioni nefaste quali l'esecuzione di comandi di cancellazione o modifiche non previste dei dati.

Pur non essendo del tutto esente da rischi, il metodo POST ci permette di passare informazioni all'applicazione in modo più sicuro; infatti POST non prevede il passaggio in chiaro dei parametri.

Anche per questo secondo metodo faremo un esempio basato sull'invio di dati tramite un modulo form:

<html> 
<head> 
<title>Form</title> 
</head> 
<body> 
<form action="http://www.miosito.it/cgi-bin/script.cgi" method="post"> 

Nome: <input name="nome" type=text size=30><br /> 
Cognome: <input name="cognome" type=text size=30><br /> 
E-mail: <input name="email" type=text size=30><br /> 

<input type=submit value="Invia"> 
</form> 
</body> 
</html>
Il modulo presentato è molto semplice, per il suo completamento richiede tre parametri di input: nome, cognome ed e-mail.

Diamo ora uno sguardo al codice che riceverà ed elaborerà i dati inviati tramite il form:
#!/usr/bin/perl

&readparse;
print "Content-type: text/html\n\n";
print "<h1>Dati ricevuti!</h1>";
$nome = $value[0]; 
$cognome = $value[1]; 
$email = $value[2]; 

print "Il tuo nome è: $nome<br />"; 
print "Il tuo cognome è: $cognome<br />"; 
print "La tua mail è: $email<br />";

Il funzionamento dello script proposto risulterà sicuramente abbastanza chiaro anche a chi ha poca pratica di Perl:
  • Il comando &readparse si occupa di richiamare una subroutine con il compito di raccogliere i dati importati tramite il form.
  • i dati inviati vengono raccolti da un array ("@value") che deve essere scomposto nei suoi tre valori in modo da assegnarli alle variabili che verranno stampate a video.
  • Vengono stampate a video le tre variabili raccolte tramite il modulo.
Come si avrà modo di notare testando lo script proposto, i parametri per l'esecuzione verranno comunque passati pur non generando una querystring destinata a contenerli.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Creare un database per le gerarchie di dati
Una volta ideata la struttura del nostro database, potremo passare alla fase pratica del nostro progetto creando le necessarie tabelle... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti