diff options
Diffstat (limited to 'docs/cgi-examples')
-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 | ||||
-rw-r--r-- | docs/cgi-examples/test-cgi | 42 |
4 files changed, 134 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> + diff --git a/docs/cgi-examples/test-cgi b/docs/cgi-examples/test-cgi new file mode 100644 index 0000000..eb80f3e --- /dev/null +++ b/docs/cgi-examples/test-cgi @@ -0,0 +1,42 @@ +# + +# To permit this cgi, replace # on the first line above with the +# appropriate #!/path/to/sh shebang, and 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. + +# disable filename globbing +set -f + +echo "Content-type: text/plain; charset=iso-8859-1" +echo + +echo CGI/1.0 test script report: +echo + +echo argc is $#. argv is "$*". +echo + +echo SERVER_SOFTWARE = $SERVER_SOFTWARE +echo SERVER_NAME = $SERVER_NAME +echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE +echo SERVER_PROTOCOL = $SERVER_PROTOCOL +echo SERVER_PORT = $SERVER_PORT +echo REQUEST_METHOD = $REQUEST_METHOD +echo HTTP_ACCEPT = "$HTTP_ACCEPT" +echo PATH_INFO = "$PATH_INFO" +echo PATH_TRANSLATED = "$PATH_TRANSLATED" +echo SCRIPT_NAME = "$SCRIPT_NAME" +echo QUERY_STRING = "$QUERY_STRING" +echo REMOTE_HOST = $REMOTE_HOST +echo REMOTE_ADDR = $REMOTE_ADDR +echo REMOTE_USER = $REMOTE_USER +echo AUTH_TYPE = $AUTH_TYPE +echo CONTENT_TYPE = $CONTENT_TYPE +echo CONTENT_LENGTH = $CONTENT_LENGTH |