]> granicus.if.org Git - apache/commitdiff
explain ScriptInterpreterSource a little bit more
authorAstrid Malo <kess@apache.org>
Sat, 28 Jun 2003 22:38:13 +0000 (22:38 +0000)
committerAstrid Malo <kess@apache.org>
Sat, 28 Jun 2003 22:38:13 +0000 (22:38 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100388 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/core.html.en
docs/manual/mod/core.xml

index 2298bddce0d8af665150b7401d773429e502db91..b30644e18d2933f6e0c9a3a95398c404782acc2f 100644 (file)
@@ -2480,22 +2480,52 @@ scripts</td></tr>
 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Win32 only<br />
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Win32 only;
 option <code>Registry-Strict</code> is available in Apache 2.0 and
 later</td></tr>
 </table>
     <p>This directive is used to control how Apache finds the
-    interpreter used to run CGI scripts. The default technique is to
-    use the interpreter pointed to by the <code>#!</code> line in the
-    script.</p>
+    interpreter used to run CGI scripts. The default setting is
+    <code>Script</code>. This causes Apache to use the interpreter pointed to
+    by the shebang line (first line, starting with <code>#!</code>) in the
+    script. On Win32 systems this line usually looks like:</p>
+
+    <div class="example"><p><code>
+      #!C:/Perl/bin/perl.exe
+    </code></p></div>
+
+    <p>or, if perl is in <code>PATH</code>, simply:</p>
+
+    <div class="example"><p><code>
+      #!perl
+    </code></p></div>
 
     <p>Setting <code>ScriptInterpreterSource Registry</code> will
-    cause the Windows Registry to be searched using the script file
-    extension (e.g., <code>.pl</code>) as a search key.</p>
+    cause the Windows Registry tree <code>HKEY_CLASSES_ROOT</code> to be
+    searched using the script file extension (e.g., <code>.pl</code>) as a
+    search key. The command defined by the registry subkey
+    <code>Shell\Open\Command</code> is used to open the script file. In absence
+    of the file extension key or the <code>Shell\Open\Command</code> subkey
+    Apache uses the <code>Script</code> option.</p>
+
+    <div class="warning"><h3>Security</h3>
+      <p>Be careful to use <code>ScriptInterpreterSource Registry</code> with 
+      <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>'ed directories,
+      because Apache is trying to execute <strong>every</strong> file within
+      this directory. The <code>Registry</code> setting may cause undesired
+      program calls on files, which are usually not executed. For example, the
+      default open command on <code>.htm</code> files on most Windows systems is
+      executing the Microsoft Internet Explorer, so any HTTP request for an
+      <code>.htm</code> file existing within the script directory would start
+      the browser in background. This is an effective method to crash your
+      system within a minute or so.</p>
+    </div>
 
     <p>The option <code>Registry-Strict</code> which is new in Apache 2.0
-    does the same as <code>Registry</code> but uses a more strict registry
-    search.</p>
+      does the same as <code>Registry</code> but uses the subkey
+      <code>Shell\ExecCGI\Command</code> instead. The <code>ExecCGI</code> key
+      is not a common one. It has to be configured manually and prevents your
+      system from accidental program calls.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index 11a2e9f5ff9c7c60797c30a2e16a73f2bb119f5f..bf0040b969ea09a4527eba24d3d043353e073e68 100644 (file)
@@ -2437,17 +2437,47 @@ later</compatibility>
 
 <usage>
     <p>This directive is used to control how Apache finds the
-    interpreter used to run CGI scripts. The default technique is to
-    use the interpreter pointed to by the <code>#!</code> line in the
-    script.</p>
+    interpreter used to run CGI scripts. The default setting is
+    <code>Script</code>. This causes Apache to use the interpreter pointed to
+    by the shebang line (first line, starting with <code>#!</code>) in the
+    script. On Win32 systems this line usually looks like:</p>
+
+    <example>
+      #!C:/Perl/bin/perl.exe
+    </example>
+
+    <p>or, if perl is in <code>PATH</code>, simply:</p>
+
+    <example>
+      #!perl
+    </example>
 
     <p>Setting <code>ScriptInterpreterSource Registry</code> will
-    cause the Windows Registry to be searched using the script file
-    extension (e.g., <code>.pl</code>) as a search key.</p>
+    cause the Windows Registry tree <code>HKEY_CLASSES_ROOT</code> to be
+    searched using the script file extension (e.g., <code>.pl</code>) as a
+    search key. The command defined by the registry subkey
+    <code>Shell\Open\Command</code> is used to open the script file. In absence
+    of the file extension key or the <code>Shell\Open\Command</code> subkey
+    Apache uses the <code>Script</code> option.</p>
+
+    <note type="warning"><title>Security</title>
+      <p>Be careful to use <code>ScriptInterpreterSource Registry</code> with 
+      <directive module="mod_alias">ScriptAlias</directive>'ed directories,
+      because Apache is trying to execute <strong>every</strong> file within
+      this directory. The <code>Registry</code> setting may cause undesired
+      program calls on files, which are usually not executed. For example, the
+      default open command on <code>.htm</code> files on most Windows systems is
+      executing the Microsoft Internet Explorer, so any HTTP request for an
+      <code>.htm</code> file existing within the script directory would start
+      the browser in background. This is an effective method to crash your
+      system within a minute or so.</p>
+    </note>
 
     <p>The option <code>Registry-Strict</code> which is new in Apache 2.0
-    does the same as <code>Registry</code> but uses a more strict registry
-    search.</p>
+      does the same as <code>Registry</code> but uses the subkey
+      <code>Shell\ExecCGI\Command</code> instead. The <code>ExecCGI</code> key
+      is not a common one. It has to be configured manually and prevents your
+      system from accidental program calls.</p>
 </usage>
 </directivesynopsis>