>Number:         284
>Category:       general
>Synopsis:       GET request with trailing ".." needs a REDIRECT
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache (Apache HTTP Project)
>State:          open
>Class:          change-request
>Submitter-Id:   apache
>Arrival-Date:   Sat Mar 29 02:40:01 1997
>Originator:     [EMAIL PROTECTED]
>Organization:
apache
>Release:        1.2b2
>Environment:
Linux (but problem is not OS-dependent)
>Description:
Normally, Apache sends a 302 for a directory path that does not have
a trailing slash, but it fails to do so for a path ending in "..".

This came to light because a spider/robot program named Teleport Pro
incorrectly sends a GET request with a URI that ends in a ".." when it
encounters HREF="..".  Since Apache doesn't tell it otherwise, dumb ol'
Teleport thinks it has a file named ".." and constructs a bunch of bad
relative URLs, which result in many 'Not Found' errors in our error.log.

Inasmuch as this is not Apache's fault, it would be consistent to do
a Redirect for a URI that has a trailing "." or ".." path component
(and for trailing "./" and "../", too, for that matter) and supply
the appropriate name as constructed by the getparent() routine.
>How-To-Repeat:
webget -head -nf www.gamers.org/docs     gets 302 (correct)
webget -head -nf www.gamers.org/docs/    gets 200 (correct)
webget -head -nf www.gamers.org/docs/..  gets 200 (should get 302)
>Fix:
1) Send a REDIRECT whenever getparent makes any changes to a uri, or
2) Send a REDIRECT whenever there is a ".." anywhere in the uri, or
3) Send a REDIRECT whenever there is a trailing ".." or "../".
Pick one.  :)   The REDIRECT should be for the path with the ".." resolved
out of it (i.e. getparent result).

(A comment about this PR form: I hope a copy of this PR gets automatically
e-mailed to me so I have a record of what I've submitted.)  :)
%0
>Audit-Trail:
>Unformatted:


Reply via email to