Aşağıdaki Perl ile yazılmış tam bir çalışma CGI programıdır. Bu gerekli tam olarak ne yapar. Apart numaralı meyve sonuç belgeleri, ayrıca look-up başarılı olmasaydı sorry-no-such-fruit.html
olduğu gösterilmiştir veya kullanıcı tüm giriş bir meyve vermedi, bir geri çekilme belge gerekir.
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI ();
my %fruit_codes = (
apple => '2321.html',
banana => '1234.html',
coconut => '8889.html',
);
my $c = CGI->new;
my $fruit_parameter = $c->param('fruit_name');
my $iframe_document;
if (defined $fruit_parameter and exists $fruit_codes{$fruit_parameter}) {
$iframe_document = $fruit_codes{$fruit_parameter};
} else {
$iframe_document = 'sorry-no-such-fruit.html';
}
$c->header('application/xhtml+xml');
print <<"END_OF_HTML";
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Fruits</title>
</head>
<body>
<form action="fruits.cgi">
<fieldset>
<label for="fruit">Name of the fruit:</label>
<input id="fruit" name="fruit_name" type="text" />
<input type="submit" />
</fieldset>
</form>
<iframe src="$iframe_document">
<a href="$iframe_document">resulting fruit</a>
</iframe>
</body>
</html>
END_OF_HTML
1;
Eğer bu programı değiştirmek istediğiniz durumda, sana en önemli güvenlik tavsiyede: çıktı kullanıcı girişi sağlanan yok (Bu durumda, $fruit_parameter
) değiştirilmemiş. Bu, en azından cross-site scripting için istismar edilebilir. Yardım için uzman bir programcı değildir.