잠재적으로 위험한 요청입니다.클라이언트(*)에서 경로 값이 탐지되었습니다.
다소 자명한 에러가 발생하고 있습니다.
잠재적으로 위험한 요청입니다.클라이언트(*)로부터 패스 값이 검출되었습니다.
의 원인은 「 」입니다.*
를 참조해 주세요
https://stackoverflow.com/Search/test*/0/1/10/1
이 URL은 검색 페이지를 채우는 데 사용됩니다. 여기서 'test*'는 검색어이고 나머지 URL은 다양한 다른 필터와 관련이 있습니다.
할 수 있는 ?URL을 해 보았습니다.web.config
특수 문자를 수동으로 인코딩/디코딩해야 합니까?아니면 이 작업을 위한 베스트 프랙티스가 있나요? 쿼리 문자열은 사용하지 않고 싶은데, 옵션일 수도 있습니다.
가 '어플리케이션'입니다.c# asp.net
위의 멋진 URL을 생성하기 위해 루팅을 사용하는 웹 양식응용 프로그램입니다.
를 사용하고 있는 경우.NET 4.0 에서는, 이러한 URL 를 web.config 로 허가할 수 있습니다.
<system.web>
<httpRuntime
requestPathInvalidCharacters="<,>,%,&,:,\,?" />
</system.web>
아스타리스크(*)를 삭제했습니다.원래의 디폴트 문자열은 다음과 같습니다.
<httpRuntime
requestPathInvalidCharacters="<,>,*,%,&,:,\,?" />
자세한 내용은 이 질문을 참조하십시오.
*
URL 경로에는 문자를 사용할 수 없지만 쿼리 문자열에서 문자를 사용하는 데는 문제가 없습니다.
http://localhost:3286/Search/?q=test*
문제가 부호화 문제입니다.*
문자는 URL에 특별한 의미가 없기 때문에 URL 인코딩 여부에 관계없이 상관없습니다.다른 방식을 사용하여 인코딩한 후 디코딩해야 합니다.
예를 들어 임의의 문자를 이스케이프 문자로 사용하는 경우:
query = query.Replace("x", "xxx").Replace("y", "xxy").Replace("*", "xyy");
복호화 중:
query = query.Replace("xyy", "*").Replace("xxy", "y").Replace("xxx", "x");
저는 웹 API 2.0을 사용하여 .net 4.5.2에서 작업하고 있는데, 동일한 오류가 발생하여 requestPathInvalidCharacters="를 requestPathInvalidCharacters에 추가하기만 하면 됩니다.그렇지 않으면 이 문제의 원인이 되는 문자를 삭제해야 합니다.
<system.web>
<httpRuntime targetFramework="4.5.2" requestPathInvalidCharacters="" />
<pages >
<namespaces>
....
</namespaces>
</pages>
</system.web>
**좋은 방법은 아닙니다.객체의 속성이 더 좋기 때문에 이 파라미터가 있는 투고일 수도 있고 특수문자를 인코딩하려고 할 수도 있습니다.--rest api를 설계하기 위한 베스트 프랙티스를 검색해 본 결과 검색, 정렬, 페이지 표시에서는 다음과 같은 쿼리 파라미터를 처리해야 한다는 것을 알게 되었습니다.
/companies?search=Digital%26Mckinsey
이것에 의해, url에 부호화해 %26까지 리플레이스 하면 문제가 해결됩니다.서버에서는 올바른 파라미터 Digital & Mckinsey를 수신합니다.
이 링크는 rest web api https://hackernoon.com/restful-api-designing-guidelines-the-best-practices-60e1d954e7c9 설계의 베스트 프랙티스에 도움이 될 수 있습니다.
검색하기 전에 루트 값을 인코딩한 후 (필요에 따라) 값을 디코딩해야 합니다.
저는 URL을 입력할 때 사용자가 실수로 ? 대신 /를 사용하여 쿼리 파라미터를 시작했습니다.
예:
url.com/endpoint/parameter=SomeValue&otherparameter=Another+value
다음과 같이 되어 있어야 합니다.
url.com/endpoint?parameter=SomeValue&otherparameter=Another+value
이 예외는 내 어플리케이션에서 발생했고 다소 오해의 소지가 있었다.
Ajax 메서드 호출을 사용하여 .aspx 페이지의 Web 메서드를 호출하고 있을 때 JSON 배열 개체를 전달했을 때 느려졌습니다.Web Page 메서드시그니처에는 strongtype 배열이 포함되어 있습니다.NET 객체, Order Details.Actual_Qty 속성은 int로 정의되었으며 JSON 개체 Actual_Qty 속성은 "4"(여백 문자)를 포함합니다.여분의 공간을 제거한 후 변환이 가능해졌고 Ajax 호출에 의해 웹 페이지 메서드에 성공적으로 도달했습니다.
웹 프로젝트의 서버 속성이 IIS Express인 경우 로컬 IIS로 설정해 보십시오.프로젝트 URL이 올바른지 확인하고 가상 디렉토리를 생성하십시오.
Uniform Resource Locator(URL)를 취급할 때는 특정 구문 표준이 있습니다.이 상황에서는 예약 문자를 취급합니다.
RFC 3986 에서는, 예약 문자는 범용 구문, 각 스킴 고유의 구문, 또는 URI 의 역참조 알고리즘의 실장 고유의 구문에 의해서 구분자로 정의할 수 있습니다.아스타리스크(*)는 예약 문자입니다.
URL에서 예약되지 않은 문자를 사용하거나 인코딩을 시도할 수 있습니다.
계속 파헤치다:
Azure Data Factory에서도 :라는 문자와 같은 문제가 있었습니다.
%3으로 대체하여 문제를 해결했습니다.A.
여기 보이는 것처럼요.
예를 들어, 나는 대신했다.
date1=2020-01-25T00:00:00.000Z
와 함께
date1=2020-01-25T00%3A00%3A00.000Z
언급URL : https://stackoverflow.com/questions/5967103/a-potentially-dangerous-request-path-value-was-detected-from-the-client
'itsource' 카테고리의 다른 글
Django에서 여러 쿼리 세트를 결합하는 방법은 무엇입니까? (0) | 2023.04.22 |
---|---|
PS1과 PROMT_COMMAND의 차이점은 무엇입니까? (0) | 2023.04.22 |
bash를 사용하여 각 행의 마지막 단어를 얻으려면 어떻게 해야 합니까? (0) | 2023.04.22 |
선언한 행과 같은 행에서 C# 목록을 초기화하려면 어떻게 해야 합니까(IEnumerable String Collection 예) (0) | 2023.04.22 |
Mongoose Error [Mongoose Server Selection Error] : 52.6.250.237:27017에 대한 연결이 닫혔습니다. (0) | 2023.04.22 |