summaryrefslogtreecommitdiffstats
path: root/docs/cgi-examples/printenv
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/cgi-examples/printenv27
-rw-r--r--docs/cgi-examples/printenv.vbs32
-rw-r--r--docs/cgi-examples/printenv.wsf33
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>
+