Rolf Rost: variablenübergabe an subroutine über html link

Beitrag lesen

Moin!

<a href="password.cgi?comment&$name&$pass" >[1] Gästebucheinträge kommentieren</a>

Ich korrigiere das mal:
href="password.cgi?parameter1=wert1&parameter2=wert2"

in password.cgi die Parameter auslesen mit dem CGI Modul:

use CGI 'param';

my $wert1 = param('parameter1');
my $wert2 = param('parameter2');

Security - Hinweis: Übergebe generell keine Parameter, die vertrauliche Inhalte ( ! Passworte) enthalten oder vom Benutzer so manipuliert werden können, dass das CGI Script Dinge tun kann die nicht erwünscht sind. Benutze also CGI Parameter lediglich zum Steuern eines CGI - Scripts, beschränke die Anzahl der Parameter auf einen sinnvollen Wert (*) durch Überlegungen zu einer Kontrollstruktur zum Steuern des CGIs und lege sicherheitsrelevante Variablen direkt in den Code.

(*): Ein Gästebuch hat im Wesentlichen 2 Zustände:
1. Einträge (seitenweise) anzeigen
2. Eintrag erstellen (Post)

Damit ergibt sich z.B. die folgende einfache Kontrollstruktur:

if(param()){
 if(param('post')){ # eintrag erstellen }
 else{ fehler('unbekannter Parameter') }
else{
 # GB anzeigen, browse
}

Du siehst also, dass ein einziger Parameter ('post' => Name des Submit-Buttons) hier ausreichend ist, der in der Kontrollstruktur abgefragt wird zum Übergang der Zustände. Es gibt dazu auch viel Geschriebenes im Internet, google mal nach

  • CGI transition model
  • CGI security considerations
    etc.

schönes WE, Rolf