2010-02-01 1 views
2

이 웹 사이트 http://www.donateblood.com.au은 파이프 문자를 허용하지 않습니다. URL에URL에 파이프 문자를 허용하도록 ASP.NET 웹 사이트를 얻으려면 어떻게해야합니까?

http://www.donateblood.com.au/news-events.aspx?IDDataTreeMenu=33

을 작동하지만 이것은 파이프가

http://www.donateblood.com.au/news-events.aspx?IDDataTreeMenu=33&y=

작품과 같은 문제처럼되지

http://www.donateblood.com.au/news-events.aspx?IDDataTreeMenu=33&y=|

것 같습니다 않습니다.

Omniture라는 제 3자가이 웹 사이트에 자동으로 액세스해야하기 때문에이 작업을 중단해야합니다. URL에 | 인코딩을 요청할 수 없습니다. 그들은 큰 회사이기 때문에. 그들은 | 그러나 나는 어떻게 잘 모르겠다.

큰 호스팅 회사의 공유 서버에서 호스팅되므로 서버가 아닌 web.config에만 액세스 할 수 있습니다.

응답 :

사실, 파이프를 차단하는 것은 우리 자신의 코드입니다. 추적하기가 매우 어려웠지만 그게 전부였습니다. 리다이렉션이 발생한 페이지 이름을 검색하면 더 쉽게 찾을 수 있습니다.

얼마나 당황 스럽습니까!

+1

정확히 어떤 오류가 발생합니까? http.sys (Windows 구성 요소), IIS (웹 서버) 및 ASP.NET (웹 응용 프로그램 서버)에는 허용되는 문자에 대한 자체 규칙이있는 다양한 단계가 있습니다. 오류는 사용 가능한 솔루션을 결정하는 데 도움이됩니다. 또한 IIS 버전과 ASP.NET 버전이 크게 달라질 수 있으므로 제공 할 수있는 정보가 많을수록 좋습니다. – Eilon

답변

1

파이프 문자는 URL에서 허용되어야합니다.

어떤 식 으로든 코드 또는 일부 기본 시스템이 파이프를 인식하면 다르게 작동합니다. 해당 시스템이 무엇인지 찾아서 중지하십시오.

- 편집 :

FWIW, 나는 그것이 "무효"고려 문자를 확인하고자하는 기본 로깅 시스템의 일종이다 생각한다. 어떤 유형의 서비스가 설치되어 있는지 확인하고, 재구성하는 방법을 이해하십시오 (그리고 이것이 전체 보안/결과에 어떤 결과를 가져올 지).

AFAIK,이 유형의 문자를 거부하는 것은 ASP.NET 또는 IIS의 기본 동작이 아닙니다.

1

파이프 문자 (및 많은 다른 문자!)는 URL 표준에서 허용되지 않습니다. http://www.faqs.org/rfcs/rfc1738.html

그들이 작동하게하는 방법을 알고 있다면, 그들은 당신에게 말할 것이 틀림 없습니다!

+0

아니, 틀렸어.그것들은 허용되며, 단지 '안전하지 않은'것으로 명명되어 있으며 인코딩되어야합니다. 그들은 허용된다. 그러나'| '라는 이름의 시스템에서 실제 리소스를 얻는 것은 상당히 어려울 것입니다. 해당 유형의 URL을 구체적으로 처리해야합니다. –

+0

@ 실 키 : RFC1738의 2.1 절 참조. 파이프 문자 (및 기타 여러 문자)는 URL에 허용되지 않습니다. 예, 인코딩하는 것이 유일한 옵션입니다. –

1

사실, 파이프를 차단하는 것은 우리 자신의 코드입니다. 추적하기가 매우 어려웠지만 그게 전부였습니다.

얼마나 당황 스럽습니까!

관련 문제