Подтвердить что ты не робот

Невозможно использовать ведущий../для выхода из верхнего каталога

У меня есть веб-сайт asp.net с ним у нас есть область администратора со страницей входа для администратора, и весь сайт разрешен для всех - мне нужно спросить, как определить правильную конфигурацию безопасности для него, поскольку я получаю эту ошибку

Cannot use a leading .. to exit above the top directory. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.HttpException: Cannot use a leading .. to exit above the top directory.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[HttpException (0x80004005): Cannot use a leading .. to exit above the top directory.]
   System.Web.Util.UrlPath.ReduceVirtualPath(String path) +8862087
   System.Web.Util.UrlPath.Reduce(String path) +52
   System.Web.Util.UrlPath.Combine(String appPath, String basepath, String relative) +214
   System.Web.UI.Control.ResolveClientUrl(String relativeUrl) +180
   System.Web.UI.WebControls.Image.AddAttributesToRender(HtmlTextWriter writer) +68
   System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +20
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +20
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +163
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +51
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

мой файл конфигурации:

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

  

                 

4b9b3361

Ответ 1

Это означает, что ваша веб-страница ссылается на контент, который находится в папке на один уровень выше вашей страницы, но ваша страница уже находится в корневой папке веб-сайта, поэтому относительный путь недействителен. Судя по вашему сообщению об исключении, похоже, что управление изображением вызывает проблему.

У вас должно быть что-то вроде:

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

Но так как сама страница находится в корневой папке веб-сайта, она не может ссылаться на контент на один уровень вверх, что и делает ведущий ..\.

Ответ 2

Вы можете использовать ~/img/myImage.png вместо ../img/myImage.png, чтобы избежать этой ошибки на страницах ASP.NET.

Ответ 3

У вас есть образ или ссылка favicon стиля ="../" где-то, что если "../" были действительными, выходили бы за верхнюю часть сайта, например:

Изображение

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

Страница

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

Действителен на этой странице: ../Images/test.jpg
Выброс ошибки: ../../Images/test.jpg

Ответ 4

Это означает, что один из путей имеет ".." в начале этого, что приведет к выходу из иерархии корневой папки веб-сайта. Вам нужно указать "относительные пути asp.net" Google или что-то подобное, чтобы помочь вам в решении вашей проблемы.

BTW, подсказка о том, где проблема, включена в страницу исключения, которую вы видели. Он фактически скажет вам, в каком файле он обнаружил проблему.

Чтобы избежать будущих событий этого исключения, выполните поиск во всем решении для этой строки: "../". Если вы найдете какие-либо из файлов в корневом пути вашего веб-сайта, обратитесь к ним.

Ответ 5

В моем случае это оказалось прокомментированным HTML на главной странице!

Кто знал, что прокомментированный HTML-код, например, был фактически интерпретирован ASP.NET!

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

Ответ 6

Я перенес свой проект со стандартного хостинга на Azure и получил ту же ошибку, когда пытаюсь открыть страницу с url-rewrite. То есть правило:

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

попробуйте открыть my_site/iPod-eBook-Creator.html и получить эту ошибку (страница my_site/Product/ProductDetail? PRODUCT_UID = IPOD_EBOOK_CREATOR может быть открыта без каких-либо проблем).

Я проверил полностью сайт - никогда не использовал.. для "повышения уровня"

Ответ 7

У меня была такая проблема, и ответ, хотя и разочаровался в поиске, был разрешен путем поиска на странице оскорбления ".." в сообщении об ошибке. Я использую Visual Studio Express, и решение менялось "../../Images/" на "~/Images/". Надеюсь, это поможет кому-то.

Ответ 8

У меня возникла проблема в моей системе очень странным образом. В моей системе клиенты создают продукты, которые находятся в структуре каталогов категорий продуктов. Поэтому ProductA может находиться в папке CategoryInner внутри папки CategoryOuter. Я только что добавил функцию, где мой URL-адрес будет отображать категорию, вложенную в URL-адрес, таким образом:

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

Очевидно, что размещение в URL-адресе предназначалось только для целей SEO (и чтобы показать пользователю, в какой категории их продукт сидит. Но когда я использовал ResolveClientUrl на некоторых URL-адресах, которые раньше работали, его, должно быть, смутили дополнительные fake pathing. Сообщение об ошибке появилось в отладчике на какой-то строке, которая никогда не была проблемой, поэтому мне потребовалось некоторое время, чтобы выяснить, что происходит. Я пропустил wnet и удалил все мои вызовы ResolveClientUrl, которые действовали на все, что было не начинался с ~ и делал остальные пути абсолютными путями.

Ответ 9

У меня та же проблема... и я сделал это.

мой код раньше:

<link rel="stylesheet" href="../css/style.default.css" type="text/css" />

и проблема решена после того, как я изменил свой код в это:

<link rel="stylesheet" href="css/style.default.css" type="text/css" />

поэтому я думаю, что "href=../" не разрешено, потому что у меня нет проблем, когда я использую "../" в "src=../"

спасибо, прежде чем