2010-03-05 5 views
0

est ici le problème: lorsque vous demandez l'url - http://server/path/to/file.html?param=../../something/something je reçois la réponse:Apache: plusieurs ../ dans la chaîne de requête = erreur interne du serveur (erreur 500)

500 Internal Server Error 
The server encountered an internal error or misconfiguration and was unable to complete your request. 
... 
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 

journal dit:

xxx.xxx.xxx.xxx - - [05/Mar/2010:13:43:29 -0500] "GET /path/to/file.html?param=../../something/something HTTP/1.1" 404 - "-" ... 

si je supprime une instance de '../' dans la chaîne de requête (demande http://server/path/to/file.html?param=../something/something), j'obtiens la page reqested. il ne donne d'erreur que sur deux ou plusieurs '../'.

Ceci est sur un serveur d'hébergement, et la même chose ne donne aucune erreur sur mes serveurs locaux (LAMP, WAMP). Je suppose que c'est à propos de la configuration d'Apache, mais je ne sais pas quelles sont les options à vérifier.

Apache2.2.14 (Unix) est en question, PHP est installé (mais il n'a clairement rien à voir avec PHP quand je demande un simple fichier HTML), les règles mod_rewrite sont désactivées (pas de .htaccess fichiers dans le chemin du fichier demandé).

des idées sur la façon de réussir à passer plusieurs '../' dans la chaîne de requête?

Répondre

1

s'est avéré être une précaution de sécurité activée par défaut par le fournisseur d'hébergement - ne permettant pas les «backpaths», mais je ne sais pas lequel, et où il est défini.