this question과 유사하지만 어떤 문자가 오류를 일으키지 않겠습니까? 현재 문자열이 위의 오류 메시지를 발생시키는 경우, 내가 전화 할 수있는 방법, 자신을 확인하는 방법에 관해서 더 궁금합니다.문자열이 화재 여부를 확인하는 방법 "잠재적으로 위험한 Request.Form 값이 감지되었습니다 ..."오류
배경을 조금 부여하려면 사용자가 암호를 잊어 버렸고 재설정해야 할 때 임의의 암호를 생성합니다. 불행히도, 임의 암호 생성기는 최근 "&#
"이라는 암호를 "실수로"생성했습니다. 이로 인해 사용자가 로그인하려고 할 때 페이지가 중단되었습니다.
이 주제에 관한 많은 게시물에서 언급했듯이 ValidateRequest=false
(또는 .NET 4.0의 경우 <httpRuntime requestValidationMode="2.0" />
)을 사용하면 .NET 악성 코드 검사를 사용하지 않도록 설정할 수 있지만이 추가 레이어를 잃을만한 이유는 없습니다. 보안 내가 처음에는 문자열을 만드는 사람입니다. 불완전한 목록 (<
, &#
등)에서 무작위 추출기를 다시 무작위로 생성한다고 말하면 가장 똑똑한 솔루션처럼 보이지 않으므로 .NET에서 사용하는 것과 동일한 검사 방법을 사용하고 싶습니다.
악용에 대한 Microsoft의 설명과 이에 대한 방어 조치가 here입니다.
This guy 반사경으로 조사한 후 IsDangerousString
이라는 기능을 찾는데 대해 이야기하지만이 기능을 사용하려면 찾을 수 없습니다. 또한 그는 .NET 1.1을 말하는 중이며 .NET 3.5를 사용하고 있습니다.
흥미로운 질문,하지만 난 당신이 그런 모호한 문자를 포함 할 이유가 표시되지 않습니다. 아마도 RandomNumberGenerator 클래스를 사용하여 바이트 []를 채운 다음 z-base32 인코더를 사용하여 바이트를 문자열로 인코딩해야합니다. – Shelakel
당신은 "익스플로잇"문자를 알고 싶습니다. 왜 html로 인코딩하기 전에 인코딩하고 html로 해독해야합니까? – HatSoft
@Shelakel 물론, 임의의 암호를 생성 할 수있는 많은 방법이 있습니다. 그러나 불행히도 우리는이 프로젝트의 암호로 4 문자 규칙 (소문자, 대문자, 숫자, 특수 문자) 모두 4 개를 수행해야 할 필요가 있습니다. 물론 불쾌한 "모호한"문자는 제거 할 수 있지만 사양이 명확하지 않기 때문에 시스템에서 확인하는 것과 동일한 기능을 사용하고 싶습니다. – Mercurybullet