Joshua Slive schrieb:

On 8/19/06, Carsten Wiedmann <[EMAIL PROTECTED]> wrote:
> Why is it really bad to have a ScriptAlias inside the DocumentRoot? It's
> only another file system location. And it's only one line in the
> config file instead of four. You have only a problem because of the > "unexpected"
> behavior of httpd with case-insensitive/case-preserved file systems
> ;-) And on Windows, the simplest way to make a consistent behavior
> with URI's is to have a alias match case-insensitive.

You seemed to miss the second part of my message, where I pointed out
that there are multiple ways to "skip around" aliases if they point to
directories that are otherwise accessible from the filesystem.  For
example, a request for //cgi-bin/file.cgi might work (I haven't tested
it)

The abs_path part of a HTTP URI can't start with a "//".


or using one of the other "funny" characteristics of the windows
filesystem that make multiple URLs point to the same filesystem
location.

Thus I can say, the source code is too simple... ;-) It's not the problem of Windows (OS X, ...) that httpd don't compare the real case of a file with the case of the resource given in a HTTP request.

BTW: With symlinks we have a similar "funny" thing on *nix, to point multiple URIs to the same filesystem location.


That is why if you want to restrict access to a filesystem
location, you need to use <Directory>, which knows about all these
funny things.

Don't forget, we are not talking about:
<Directory c:/apache2/htdocs> ... </Directory>
ScriptAlias /cgi-bin/ c:/apache2/htdocs/cgi-bin/
vs.
<Directory c:/apache2/htdocs> ... </Directory>
ScriptAlias /cgi-bin/ //server/share/htdocs/cgi-bin/
(different filesystem/network paths for Directory and ScriptAlias target. OK, they can point to the same resource, but that's another problem.)


We are talking about:
<Directory c:/apache2/htdocs> ... </Directory>
ScriptAlias /cgi-bin/ c:/apache2/htdocs/cgi-bin/
and
http://example.com/cgi-bin/foo.cgi
vs.
http://example.com/CGI-BIN/foo.cgi

And why are sometimes (part of) the URI is case-sensitive and somtimes not and what happens in consequence because of this behavior. And this behavior is the only reason why it can be (on some systems) a problem to have the ScriptAlias inside the DirectoryRoot.

Unfortunately there is for the moment no setting in the configuration, in order to achieve with such a system a real RFC conformal behavior (e.g.like "lower_case_table_names" in MySQL). But you can achieve a consistent behavior.

Regards,
Carsten


Reply via email to