ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/web/cgi-bin/docs.cgi
(Generate patch)

Comparing web/cgi-bin/docs.cgi (file contents):
Revision 1.3 by tdb, Thu Nov 9 22:03:56 2000 UTC vs.
Revision 1.4 by pjm2, Thu Feb 8 21:17:47 2001 UTC

# Line 19 | Line 19 | my ($bottom) = "../bottom.inc";
19  
20  
21   my ($query) = new CGI;
22 my ($doc) = ($query->param('doc') =~ /^\s*(.*?\.txt)\s*$/);
23 $doc = "../documentation/".$doc;
22  
23 + # Note filenames may only have one dot in them, in the ".txt".
24 + # This prevents malicious users using "../" to view files.
25 + my ($doc) = ($query->param('doc') =~ /^\s*([^\.]*?\.txt)\s*$/);
26 +
27   print "Content-type: text/html\n\n";
28 +
29 + unless (defined $doc) {
30 +    print "The link to this page was broken - it must specify a .txt file.";
31 +    exit;
32 + }
33 +
34 + # Prevent hackers from supplying a malformed document string.
35 + # I.e. only allow normal characters, slashes and dots.
36 + unless ($doc =~ /^[a-zA-Z_\-0-9\.\/]+$/) {
37 +    print "Go Away, you nasty hax0r!";
38 +    exit;
39 + }
40 + $doc = "../documentation/".$doc;
41  
42   print <<"END";
43   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines