2017-03-02 3 views
0

MVC ASP.NET 웹 페이지에서 uri의 절대 경로를 얻으려고합니다. 나는삽입 된 스크립트를 페이지의 절대 경로에서 버리는 방법은 무엇입니까?

Request.Url.AbsolutePath 

을 사용하고 있습니다하지만이

http://example.com/about/%27%3bfunc(document.cookie)%3b%27gfg 

이 나에게 "절대 URL"

/about/';func(document.cookie);' 
을 줄 것 같은 URL을 제공하여 일부 영리한 XSS 기법을 사용하여 해킹 할 수있다

위의 Request 개체를 사용하십시오. 그러면 어떻게 피할 수 있을까요? 건배 옌스

+2

처음으로, 아무 repro. '새로운 Uri ("http://example.com/about/%27%3bfunc(document.cookie)%3b%27gfg")를 호출 .AbsolutePath'는'/about/%27%3bfunc(document.cookie)%3b를 반환합니다. % 27gfg'으로 예상했다. 아마도 이전 .NET 버전을 사용하고 있습니까? 4.5에는 몇 가지 변화가있었습니다. 가장 초기에 지원되는 .NET 버전은 4.5.2 –

+1

입니다. 둘째,이 문자열에는 잘못된 문자가 없습니다. "해킹 된"및 XSS 란 무엇입니까? 뷰 코드가 원시 텍스트를 사용하여 상대 경로 나 URL 도우미를 사용하는 대신 링크를 생성하지 않는 한이 코드는 실행되지 않습니다. 영향을받는보기 코드를 게시하십시오 –

+0

우리는 .NET 4.0을 사용하고 있습니다. 질문을 잘못했을 수도 있습니다. 목표는 웹 페이지에 xss 코드를 삽입하는 쿼리 매개 변수와 명백한 시도없이 '깨끗한'절대 URL을 얻는 것입니다. –

답변

0

는 의견 주셔서 감사합니다. 나는 죽은 단순한 문자열로 이동하기로 결정했습니다. URL에서 %()를 바꾸고 꺼내십시오. 이렇게하면 xss 시도를 피할 수 있습니다.

+0

). 이 문제를 해결할 수 있습니다. URL의 첫 번째 위치가 올바른지 확인하는 것이 좋습니다. 왜 나쁜 URL을 허용합니까? –

+0

잘못된 URL을 받아들이기로 결정한 * 웹 응용 프로그램 자체 * 누군가가 "Admin"또는 "admin.php"와 같은 "흥미있는"접미사를 사용하여 사이트 URL을 포함하는 페이지를 만드는 것을 결정하면 이들은 여전히 ​​끝날 것입니다 Google 애널리틱스 및 색인에서 이러한 URL을 공격하는 스크립트 꼬마들에게 유용합니다. –

관련 문제