web-dev-qa-db-fra.com

Impossible d'utiliser une .. .. pour sortir au-dessus du répertoire principal

J'ai un site Web asp.net avec celui-ci, nous avons une zone d'administration avec une page de connexion réservée à l'administration et tout le site est autorisé pour tous. J'ai besoin de demander comment définir la bonne configuration de sécurité pour cette erreur, car je reçois cette erreur. 

Impossible d'utiliser un interligne .. pour sortir au-dessus du répertoire principal. 
 Description: une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Consultez la trace de la pile pour plus d’informations sur l’erreur et son origine dans le code. 

 Détails des exceptions: System.Web.HttpException: impossible d'utiliser un lead .. pour sortir au-dessus du répertoire principal .

 Erreur source: 

 Une exception non gérée a été générée au cours de la exécution de la requête Web en cours. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées à l'aide de la trace de pile d'exceptions ci-dessous. 

 Pile Trace: 


 [HttpException (0x80004005): impossible d'utiliser un interligne .. pour sortir au-dessus du répertoire principal.] 
 System.Web.Util.UrlPath.ReduceVirtualPath (chemin de la chaîne) +8862087 
 System.Web.Util.UrlPath.Reduce (chemin de la chaîne) +52 
 System.Web.Util.UrlPath.Combine (String appPath, String basepath, String relatif) +214 
 System.Web.UI.Control.ResolveClientUrl (String relativeUrl) +180 
 System.Web.UI.WebControls.Image.AddAttributesToRender (écrivain HtmlTextWriter) +68 
 System.Web.UI.WebControls.WebControl.RenderBeginTag (écrivain HtmlTextWriter) +20 
 System.Web.UI.WebControls.WebControl.Render (écrivain HtmlTextWriter) +20 
 System.Web.UI.Control.RenderControlInternal (écrivain HtmlTextWriter, adaptateur ControlAdapter) +27 
 System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter, adaptateur ControlAdapter) +99 
 System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter) +25 
 System.Web.UI.Control.RenderChildrenInternal (écrivain HtmlTextWriter, enfants ICollection) +134 
 System.Web.UI.Control.RenderChildren (écrivain HtmlTextWriter) +19 
 System.Web.UI.HtmlControls.HtmlForm.RenderChildren (écrivain HtmlTextWriter) +163 
 System.Web.UI.HtmlControls.HtmlContainerControl.Render (écrivain HtmlTextWriter) +32 
 System.Web.UI.HtmlControls.HtmlForm.Render (sortie HtmlTextWriter) +51 
 System.Web.UI.Control.RenderControlInternal (écrivain HtmlTextWriter, adaptateur ControlAdapter) +27 
 System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter, adaptateur ControlAdapter) +99 
 System.Web.UI.HtmlControls.HtmlForm.RenderControl (écrivain HtmlTextWriter) +40 
 System.Web.UI.Control.RenderChildrenInternal (écrivain HtmlTextWriter, enfants ICollection) +134 
 System.Web.UI.Control.RenderChildren (écrivain HtmlTextWriter) +19 
 System.Web.UI.Control.Render (écrivain HtmlTextWriter) +10 
 System.Web.UI.Control.RenderControlInternal (écrivain HtmlTextWriter, adaptateur ControlAdapter) +27 
 System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter, adaptateur ControlAdapter) +99 
 System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter) +25 
 System.Web.UI.Control.RenderChildrenInternal (écrivain HtmlTextWriter, enfants ICollection) +134 
 System.Web.UI.Control.RenderChildren (écrivain HtmlTextWriter) +19 
 System.Web.UI.Page.Render (écrivain HtmlTextWriter) +29 
 System.Web.UI.Control.RenderControlInternal (écrivain HtmlTextWriter, adaptateur ControlAdapter) +27 
 System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter, adaptateur ControlAdapter) +99 
 System.Web.UI.Control.RenderControl (écrivain HtmlTextWriter) +25 
 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

mon fichier de configuration: 

 <authentication mode="Forms">
  <forms name=".ASPXFORMSAUTH" protection="All" loginUrl="Admin/LoginPage.aspx" path="/" enableCrossAppRedirects="true">
  </forms>
</authentication>
<authorization>
  <deny users="*" />
</authorization>

 

39
user186816

Cela signifie que votre page Web fait référence au contenu qui se trouve dans le dossier situé au niveau supérieur de votre page, mais que votre page se trouve déjà dans le dossier racine du site Web. Le chemin relatif est donc incorrect. À en juger par votre message d'exception, il semble qu'un problème de contrôle d'image soit à l'origine du problème.

Vous devez avoir quelque chose comme:

<asp:Image ImageUrl="..\foo.jpg" />

Mais comme la page elle-même se trouve dans le dossier racine du site Web, elle ne peut pas faire référence au contenu d’un niveau supérieur, ce que fait le ..\ principal.

55
Adam Ralph

Vous pouvez utiliser~/img/myImage.pngau lieu de../img/myImage.pngpour éviter cette erreur dans les pages ASP.NET.

15
Majid

Vous avez une image ou un lien favicon du style ="../" quelque part, qui, si le "../" était valide, irait au-delà du haut du site, comme ceci:

Image:

http://example.com/Images/test.jpg

Page

http://example.com/Pages/test.aspx

Valable sur cette page: ../Images/test.jpg
Lancerait une erreur: ../../Images/test.jpg

9
Nick Craver

Dans mon cas, il s'est avéré être commenté HTML dans une page maître!

Qui savait que les commentaires HTML tels que celui-ci étaient en fait interprétés par ASP.NET!

<!--
<link rel="icon" href="../../favicon.ico">
-->
2
Matthew Lock

Cela signifie que l'un des chemins comporte au début un ".." qui entraînerait la sortie de la hiérarchie des dossiers racine du site Web. Vous avez besoin de Google "chemins relatifs asp.net" ou quelque chose comme ça pour vous aider avec votre problème.

BTW, une indication de l'endroit où se trouve le problème est incluse dans la page d'exception que vous avez vue. En fait, il vous dira dans quel fichier il a trouvé le problème.

Pour éviter les futures occurrences de cette exception, effectuez une recherche dans la solution complète pour cette chaîne: "../". Si vous en trouvez dans les fichiers situés dans le chemin racine de votre site Web, adressez-les. 

2
user3409893

J'ai eu le problème sur mon système d'une manière très étrange. Dans mon système, les clients créent des produits qui se trouvent dans une structure de répertoires de catégories de produits. Ainsi, ProductA peut s’asseoir dans le dossier CategoryInner à l’intérieur du dossier CategoryOuter. Je venais d'ajouter une fonctionnalité dans laquelle mon URL montrerait la catégorie imbriquée dans l'URL comme suit:

http://www.somedomain.com/product/CategoryOuter/CategoryInner/ProductA.aspx

Évidemment, l'URL était imbriquée uniquement à des fins de référencement (et pour montrer à l'utilisateur dans quelle catégorie se trouvait son produit.) Mais lorsque j'ai utilisé ResolveClientUrl sur certaines URL qui fonctionnaient auparavant, il a dû être dérouté par le faux chemin. Le message d'erreur apparaissant dans le débogueur sur une ligne n'ayant jamais posé problème, il m'a fallu un certain temps pour comprendre ce qui se passait. J'ai lu et supprimé tous mes appels ResolveClientUrl qui agissaient sur tout ce qui ne fonctionnait pas. commencez par un ~ et faites le reste des chemins chemins absolus.

0
Brett

J'ai déplacé mon projet d'hébergement "standard" vers Azure et j'obtiens la même erreur lorsque j'essaie d'ouvrir une page avec url-rewrite. C'est à dire. la règle est:

<add key="/iPod-eBook-Creator.html" value="/Product/ProductDetail?PRODUCT_UID=iPod_EBOOK_CREATOR" />

essayez d'ouvrir my_site/iPod-eBook-Creator.html et obtenez cette erreur (page my_site/Product/ProductDetail? PRODUCT_UID = iPod_EBOOK_CREATOR peut être ouvert sans problème).

J'ai vérifié l'intégralité du site - jamais utilisé .. pour "monter de niveau"

0
Oleg Sh

J'ai eu un tel problème et la réponse, bien que frustrante à trouver, a été résolue en faisant une recherche sur la page incriminée pour le ".." dans le message d'erreur. J'utilise Visual Studio Express et la solution changeait "../../Images/" en "~/Images /". J'espère que cela aidera quelqu'un.

0
user1830924