programing

선두에 있는 .../을(를) 사용하여 상위 디렉터리 위를 종료할 수 없습니다.

bestprogram 2023. 8. 25. 23:51

선두에 있는 .../을(를) 사용하여 상위 디렉터리 위를 종료할 수 없습니다.

저는 asp.net 웹 사이트가 있고 관리자 전용 로그인 페이지가 있는 관리자 영역이 있으며 모든 사이트가 허용됩니다. 이 오류가 발생하면 올바른 보안 구성을 정의하는 방법을 문의해야 합니다.

선행을 사용할 수 없습니다.최상위 디렉터리 위에서 종료합니다. 
설명:현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다.오류에 대한 자세한 내용과 코드에서 발생한 오류에 대한 자세한 내용은 스택 추적을 검토하십시오. 

예외 세부 정보:시스템.Web.HttpException: 선행 항목을 사용할 수 없습니다.최상위 디렉터리 위에서 종료합니다.

소스 오류:
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다.예외의 출처 및 위치에 대한 정보는 아래의 예외 스택 추적을 사용하여 식별할 수 있습니다.  

스택 추적:

[HttpException(0x80004005):선행을 사용할 수 없습니다.최상위 디렉터리 위를 종료합니다.]
시스템.웹.유틸.UrlPath입니다.가상 경로(문자열 경로) 감소 +8862087시스템.웹.유틸.UrlPath입니다.축소(문자열 경로) +52시스템.웹.유틸.UrlPath입니다.결합(String appPath, String basepath, String relative) +214시스템.웹.UI.통제.클라이언트Url(문자열 relativeUrl) +180 해결시스템.웹.UI.웹 컨트롤.Image.Add 속성렌더(HtmlTextWriter 작성자) +68시스템.웹.UI.웹 컨트롤.웹 컨트롤.RenderBeginTag(HtmlTextWriter 작성기) +20시스템.웹.UI.웹 컨트롤.웹 컨트롤.렌더(HtmlTextWriter) +20시스템.웹.UI.통제.RenderControlInternal(HtmlTextWriter 작성기, ControlAdapter 어댑터) +27시스템.웹.UI.통제.RenderControl(HtmlTextWriter 작성기, ControlAdapter 어댑터) +99시스템.웹.UI.통제.렌더 컨트롤(HtmlTextWriter 작성기) +25시스템.웹.UI.통제.하위 렌더링내부(HtmlTextWriter 작성자, 어린이 수집) +134시스템.웹.UI.통제.렌더칠드런(HtmlTextWriter) +19시스템.웹.UI.Html 컨트롤.Html 양식.렌더칠드런(HtmlTextWriter) +163시스템.웹.UI.Html 컨트롤.HtmlContainerContainerControl렌더(HtmlTextWriter 작성기) +32시스템.웹.UI.Html 컨트롤.Html 양식.렌더(HtmlTextWriter 출력) +51시스템.웹.UI.통제.RenderControlInternal(HtmlTextWriter 작성기, ControlAdapter 어댑터) +27시스템.웹.UI.통제.RenderControl(HtmlTextWriter 작성기, ControlAdapter 어댑터) +99시스템.웹.UI.Html 컨트롤.Html 양식.렌더 컨트롤(HtmlTextWriter 작성기) +40시스템.웹.UI.통제.하위 렌더링내부(HtmlTextWriter 작성자, 어린이 수집) +134시스템.웹.UI.통제.렌더칠드런(HtmlTextWriter) +19시스템.웹.UI.통제.렌더(HtmlTextWriter 작성기) +10시스템.웹.UI.통제.RenderControlInternal(HtmlTextWriter 작성기, ControlAdapter 어댑터) +27시스템.웹.UI.통제.RenderControl(HtmlTextWriter 작성기, ControlAdapter 어댑터) +99시스템.웹.UI.통제.렌더 컨트롤(HtmlTextWriter 작성기) +25시스템.웹.UI.통제.하위 렌더링내부(HtmlTextWriter 작성자, 어린이 수집) +134시스템.웹.UI.통제.렌더칠드런(HtmlTextWriter) +19시스템.웹.UI.Page.Render(HtmlTextWriter 작성자) +29시스템.웹.UI.통제.RenderControlInternal(HtmlTextWriter 작성기, ControlAdapter 어댑터) +27시스템.웹.UI.통제.RenderControl(HtmlTextWriter 작성기, ControlAdapter 어댑터) +99시스템.웹.UI.통제.렌더 컨트롤(HtmlTextWriter 작성기) +25시스템.웹.UI.Page.ProcessRequestMain(부울에는 AsyncPoint 이전 단계 포함, 부울에는 AsyncPoint 이후 단계 포함) +1266

내 구성 파일:

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

즉, 웹 페이지가 페이지보다 한 단계 높은 폴더에 있는 내용을 참조하지만 페이지가 이미 웹 사이트의 루트 폴더에 있으므로 상대 경로가 올바르지 않습니다.예외 메시지를 보니 이미지 컨트롤이 문제의 원인인 것 같습니다.

다음과 같은 것이 있어야 합니다.

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

그러나 페이지 자체가 웹 사이트의 루트 폴더에 있기 때문에 한 단계 위의 내용을 참조할 수 없으며, 이것이 선도적인 것입니다...\하고 있습니다.

대신 를 사용하여 ASP에서 이 오류를 방지할 수 있습니다.NET 페이지.

스타일의 이미지 또는 즐겨찾기 링크가 있습니다.="../"어가약에, 만딘 ".../"같이 .다음과 같이 사이트의 상단을 넘어 유효합니다.

이미지:

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

페이지입니다.

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

페이지에서 할 수 있습니다.../Images/test.jpg
할 수 오류발:../../Images/test.jpg

즉, 경로의 시작 부분에 "."가 있으므로 웹 사이트의 루트 폴더 계층 구조가 종료됩니다.문제를 해결하려면 "asp.net 상대 경로" 또는 유사한 경로를 검색해야 합니다.

참고로, 문제가 어디에 있는지에 대한 힌트는 당신이 본 예외 페이지에 포함되어 있습니다.실제로 문제가 발견된 파일을 알려줍니다.

이 예외가 발생하는 것을 방지하려면 전체 솔루션에서 ".../" 문자열을 검색합니다.웹 사이트의 루트 경로에 있는 파일에서 해당 파일을 찾으면 주소를 지정합니다.

제 경우에는 마스터 페이지에서 HTML로 주석 처리된 것으로 밝혀졌습니다!

이것과 같은 HTML을 실제로 ASP가 해석한 것인지 누가 알았겠습니까?NET!

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

"표준" 호스팅에서 Azure로 프로젝트를 옮겼는데 url-rewrite로 페이지를 열려고 할 때 동일한 오류가 발생합니다.즉, 규칙은 다음과 같습니다.

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

my_site/iPod-eBook-Creator.html을 열고 이 오류를 확인합니다(page my_site/Product/ProductDetail?).PRODUCT_UID=PRODUCT_EBOOK_CREATOR를 문제없이 오픈할 수 있습니다.)

전체 사이트를 확인했습니다. "레벨 업"을 위해 사용된 적이 없습니다.

저는 그런 문제가 있었고, 찾기가 답답했지만, 오류 메시지의 "."에 대한 문제 페이지에서 검색을 수행함으로써 답이 해결되었습니다.Visual Studio Express를 사용하고 있는데 솔루션이 ".../../images/"에서 "~/images/"로 이동합니다. 이것이 누군가에게 도움이 되기를 바랍니다.

제 시스템에서 매우 이상한 방식으로 문제가 발생했습니다.내 시스템에서 고객은 제품 범주의 디렉터리 구조 안에 있는 제품을 만듭니다.그래서 A 제품이 카테고리 폴더에 있을 수 있습니다.폴더 카테고리 내부Outer. 나는 방금 내 URL이 URL에 중첩된 카테고리를 보여주는 기능을 추가했습니다.

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

분명히 URL에 중첩된 것은 SEO 목적을 위한 것입니다(그리고 사용자에게 제품이 어떤 범주에 있는지 보여주기 위한 것입니다).하지만 예전에 작동하던 일부 URL에서 ResolveClientUrl을 사용했을 때 추가적인 가짜 경로 지정으로 인해 혼란스러웠을 것입니다.문제가 되지 않는 어떤 라인의 디버거에서 오류 메시지가 나타나서 무슨 일이 일어나고 있는지 알아내는 데 꽤 많은 시간이 걸렸습니다.~로 시작하지 않고 나머지 경로를 절대 경로로 만든 ResolveClientUrl 호출을 모두 제거했습니다.

이 답변들로 충분하다는 것을 알지만, 오류가 발생하는 장소를 보여드리겠습니다.

아래와 같은 구조를 가진 경우:

  • ./Src/Master.cs(기본 양식 페이지)
  • ./Invoice/SubFolder/InvoiceEdit.aspx(하위 양식 페이지)

보조양식 페이지에 들어가면 마스터 페이지에서 사용한 것과 유사한 내용을 사용할 때 오류가 발생합니다.Page.ResolveClientUrl("~/Style/img/logo_small.png").

지금이다ResolveClientUrl이 마스터 페이지에 있으며 루트 폴더를 제공하려고 합니다.그러나 하위 폴더에 있기 때문에 함수는 다음과 같은 것을 반환합니다.../../Style/img/logo_small.png이 길은 잘못된 길입니다.

왜냐하면 여러분이 두 단계 위에 있을 때, 여러분은 올바른 장소에 있지 않기 때문입니다; 여러분은 단지 한 단계 위에 올라갈 필요가 있습니다, 그래서 다음과 같은 것.../.

저도 같은 문제가 있어요제가 해냈어요

이전 코드:

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

그리고 코드를 다음과 같이 변경한 후 문제가 해결되었습니다.

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

그래서 제 생각엔"href=../"사용할 때 문제가 없기 때문에 허용되지 않습니다."../""src=../"

마스터 페이지에서 모든 .../을(를) 제거하십시오.

<link rel="stylesheet" id="stylesheet" href="../Includes/Styles/responsive.css" />

사용하는 대신

<link rel="stylesheet" id="stylesheet" href="Includes/Styles/responsive.css" />

언급URL : https://stackoverflow.com/questions/2262271/cannot-use-a-leading-to-exit-above-the-top-directory