diff options
Diffstat (limited to '')
-rw-r--r-- | docs/cgi-examples/printenv | 27 | ||||
-rw-r--r-- | docs/cgi-examples/printenv.vbs | 32 | ||||
-rw-r--r-- | docs/cgi-examples/printenv.wsf | 33 |
3 files changed, 92 insertions, 0 deletions
diff --git a/docs/cgi-examples/printenv b/docs/cgi-examples/printenv new file mode 100644 index 0000000..5b5035e --- /dev/null +++ b/docs/cgi-examples/printenv @@ -0,0 +1,27 @@ +# + +# To permit this cgi, replace # on the first line above with the +# appropriate #!/path/to/perl shebang, and on Unix / Linux also +# set this script executable with chmod 755. +# +# ***** !!! WARNING !!! ***** +# This script echoes the server environment variables and therefore +# leaks information - so NEVER use it in a live server environment! +# It is provided only for testing purpose. +# Also note that it is subject to cross site scripting attacks on +# MS IE and any other browser which fails to honor RFC2616. + +## +## printenv -- demo CGI program which just prints its environment +## +use strict; +use warnings; + +print "Content-type: text/plain; charset=iso-8859-1\n\n"; +foreach my $var (sort(keys(%ENV))) { + my $val = $ENV{$var}; + $val =~ s|\n|\\n|g; + $val =~ s|"|\\"|g; + print "${var}=\"${val}\"\n"; +} + diff --git a/docs/cgi-examples/printenv.vbs b/docs/cgi-examples/printenv.vbs new file mode 100644 index 0000000..9336d43 --- /dev/null +++ b/docs/cgi-examples/printenv.vbs @@ -0,0 +1,32 @@ +' + +' To permit this cgi, replace ' on the first line above with the +' appropriate shebang, f.e. '!c:/windows/system32/cscript -nologo +' +' ***** !!! WARNING !!! ***** +' This script echoes the server environment variables and therefore +' leaks information - so NEVER use it in a live server environment! +' It is provided only for testing purpose. +' Also note that it is subject to cross site scripting attacks on +' MS IE and any other browser which fails to honor RFC2616. + +'' +'' printenv -- demo CGI program which just prints its environment +'' +Option Explicit + +Dim objShell, objArray, str, envvar, envval +Set objShell = CreateObject("WScript.Shell") +Set objArray = CreateObject("System.Collections.ArrayList") + +WScript.StdOut.WriteLine "Content-type: text/plain; charset=iso-8859-1" & vbLF +For Each str In objShell.Environment("PROCESS") + objArray.Add str +Next +objArray.Sort() +For Each str In objArray + envvar = Left(str, InStr(str, "=")) + envval = Replace(Mid(str, InStr(str, "=") + 1), vbLF, "\n") + WScript.StdOut.WriteLine envvar & Chr(34) & envval & Chr(34) +Next + diff --git a/docs/cgi-examples/printenv.wsf b/docs/cgi-examples/printenv.wsf new file mode 100644 index 0000000..d982eac --- /dev/null +++ b/docs/cgi-examples/printenv.wsf @@ -0,0 +1,33 @@ +' + +' To permit this cgi, replace ' on the first line above with the +' appropriate shebang, f.e. '!c:/windows/system32/cscript -nologo +' +' ***** !!! WARNING !!! ***** +' This script echoes the server environment variables and therefore +' leaks information - so NEVER use it in a live server environment! +' It is provided only for testing purpose. +' Also note that it is subject to cross site scripting attacks on +' MS IE and any other browser which fails to honor RFC2616. + +'' +'' printenv -- demo CGI program which just prints its environment +'' +<job> +<script language="JScript"> + WScript.Echo("Content-type: text/plain; charset=iso-8859-1\n"); + var objShell = new ActiveXObject("WScript.Shell"); + var objArray = new Array(); + var e = new Enumerator(objShell.Environment("PROCESS")); + for (;!e.atEnd();e.moveNext()) { + var i = e.item().indexOf("="); + var envvar = e.item().substring(0, i); + var envval = e.item().substring(i + 1, e.item().length); + envval = envval.replace("\n", "\\n"); + objArray.push(envvar + "=\"" + envval + "\""); + } + objArray.sort(); + WScript.Echo(objArray.join("\n")); +</script> +</job> + |