2009-04-01 3 views
0

오전 내 asp.net 페이지에서이 오류가 점점 :ASP.Net 오류

잠재적 위험으로 Request.Form 값은 클라이언트에서 발견 된

(ctl00 $ DefaultContent $ UCSimpleSearch $ txtFind = "$ %의^& # %를^& @ # % @ ").

이 페이지의 텍스트 상자에 $ %^& # %^& @ # % @을 입력하고 제출을 누르면이 오류가 발생합니다.

어떻게이 오류를 극복합니까? Page Directive에서 validateRequest = false를 설정하여이를 제거하는 것이 좋습니다?

감사합니다.

답변

2

ValidateRequest를 false로 설정하면이 오류를 해결할 수 있습니다. 당신이 결정해야 할 것은이 문자들이 당신의 양식에 유효한 입력 문자인지 아닌지입니다. 그렇다면이 기능을 끄고 모든 사용자 입력을 올바르게 처리해야합니다.

위험한 문자 목록을 찾을 수없는 것 같습니다. 누구든지 그 문자를 알고 있으면 가치있는 링크를 가질 수 있습니다.

몇 가지 좋은 정보는 here입니다.

일반적으로 사이트에 올린 데이터를 항상 html로 인코딩해야하므로이 기능을 끄면 해를 입을 수 없습니다. 그러나 확실한지 잘 모르겠다면이 데이터를 그대로두고 양식에이 데이터를 허용하지 않는 것이 가장 좋습니다.

-1

그것은 당신이 게시 사용자에게 HTML 태그는하여 validateRequest을 추가 할 수 있도록해야하는 경우, 그것은 보안상의 이유로

를위한 .NET 프레임 워크의 아주 이전 버전에 추가 된 서버에 HTML 태그가 포함 된 값을 게시 할 수 없음을 의미합니다 = "false"를 페이지 지시문에 적용

1

페이지 지시어에 넣는 것은 사용자가 직접 유효성을 검사하고 누군가가 생각할 수있는 내용을 게시하려는 경우에만 수행해야합니다 귀하의 서버에.

입력 한 문자열이 유효한 입력이면 요청 유효성 검사를 비활성화해야합니다.

0

Page 지시문에서 validateRequest = false를 설정하여 제거하는 것이 좋습니까?

텍스트 입력의 유효성 검사를 명시 적으로 처리 할 수 ​​있다면 어떨까요?