2010-06-29 8 views
1

때때로 ASP.NET에 작성된 다른 웹 사이트에 대해 400 개의 잘못된 요청 오류가 발생합니다.ASP.NET 및 400 잘못된 요청 오류

내가 아는 유일한 해결책은 해당 사이트의 쿠키를 정리하는 것입니다. 문제의 원인은 Google 애널리틱스에 속한 _utmz 및 _utma 쿠키 인 것으로 보입니다. 이 문제는 모질라 파이어 폭스 (Mozilla FireFox)에서 흔히 발생하며 때로는 Ghrome과 Safari에서 발생하며 IE에서는 발생하지 않습니다. 이 오류는 실수로 발생합니다.

내가 무엇을 발견 :

ASP.Net 팀의 스테판에서

: 콜론 문자와 같은 ASP.NET URL을 포함 된 문자의 현재 버전의 http://forums.asp.net/p/1431148/3221542.aspx

이 거부됩니다 잠재적 인 보안 위협. 의 이유는 NTFS 파일 시스템이 "yourfile.txt : hiddendata.txt"와 같은 이름으로 액세스되는 일 수있는 대체 리소스 스트림을 지원한다는 것입니다. URL에서 콜론 문자를 차단하면 응용 프로그램이 잘못 작성되어 이 우연히 대체 자원 스트림 으로 작업하는 것을 방지합니다.

는 ASP.NET의 현재 버전의 제한 사항이 있음을 들어오는 URL을 구성 데이터를 관리 결정을 위해 NTFS 파일 시스템 에 매핑해야합니다.

ASP.NET 4에서 이러한 제한은 을 선택적으로 제거 할 수 있습니다. 그러나 의 변경 사항은 ASP.NET 4의 베타 2 버전에 있습니다. 베타 1에 포함되어 있지 않습니다. 은 에 게시 된 URL을 시도한 것으로, 내부 빌드가 ASP.NET 4 인 임을 확인했습니다. URL 스타일을 사용하여 400 오류없이 처리 할 수 ​​있습니다.

은 ASP.NET 런타임, FireFox 또는 Google Analytics 코드의 쿠키 관리 프로세스에 문제가 있습니까? 어떤 문제 해결책을 알고 있습니까?

+0

크기가 너무 크면 _utmz 및 _utma 일 수 없습니다. 모든 쿠키의 전체 크기를 확인하고 각각의 쿠키를 모두 작게 유지하십시오. – Aristos

답변

1

문제는 firefox가 쿠키의 특수 문자를 처리하는 방식과 관련이 있습니다. asp.net과 관련이 없으므로 사용하는 언어에 관계없이 오류가 발생합니다.

Google 애널리틱스 캠페인 소스에서 문제가 자주 발생하는 것으로 보입니다. 이러한 값을 알파 문자로 유지하려고하면됩니다.

개인적으로 사람들이 쿼리 문자열에 아포스트로피와 mDash를 사용하는 문제를 해결해야했습니다. 결과적으로 사람들에게 하이픈과 아포스트로피를 피하기 만하면됩니다. 당신이 그들을 포함하지 않는 경우, 당신은 그들이 브라우저가 처리 할 수없는 특수 문자를 복사하지 않았는지 확신 할 수 없습니다.

This forum에는 사이트에 제대로 액세스 할 수 있도록 400 페이지의 잘못된 쿠키를 지울 수있는 제안 사항이 있습니다.

이미 another question에 stackoverflow와 동일한 문제가 있습니다.

캠페인 소스 등을 설정하기 전에 특수 문자를 포함하지 않아야합니다. CMS 뉴스 레터 등을 통해 동적으로 생성 된 소스는 공격적으로 형식이 지정되지 않은 경우 잘못된 문자를 포함 할 수 있습니다. MSOffice 문자를 제목과 링크에 붙여 넣는 사람들과 문제가있어 쿠키를 중단하고 페이지 제공을 중단합니다.

GA에 잘못된 데이터를 보내지 않고 쿠키가 손상되지 않도록하는 것 외에는 해결 방법이 없습니다.

관련 문제