2013-12-13 1 views
1

내가는 요청 유효성 검사

requestValidationMode="4.0" 

을 설정할에서 ASP.NET MVC 3 응용 프로그램이 있고 웹 사이트의 모든 영역은 일반 사용자했다가 액세스 할 수있는 Asp.mvc

ValidateInput(true) 

이 기본적으로 모든 사용자 입력을 html로 인코딩하고 데이터베이스에 인코딩하여 저장합니다. 내 질문은 내가 및 암호 변경 기능에 가입, 로그를 처리해야하는 방법

입니다

(이 사이트는 자바 스크립트없이 작동하는 것은 아닙니다)?

은 분명히 나는 ​​

암호 필드 그때 클라이언트에서 HTML 인코딩을하고 경우에 확인되어, 사용자가 그/그녀가 그렇게 원하는 중 암호를 삽입 할 수 있도록하려면 html 디코드 데이터베이스에 암호를 저장하기 전에?

+0

데이터베이스에 인코딩 된 것을 저장하지 마십시오. 출력되는 컨텍스트 (예 : HTML)마다 인코딩해야합니다. 그렇지 않으면 다른 형식 (예 : JSON 또는 일반 텍스트)으로 출력하고 싶다면 두통이 날 것입니다. – SilverlightFox

+0

데이터베이스에 html을 저장하는 것은 아주 좋은 생각처럼 보이지 않습니다. – Mihai

답변

1

, XSS는 암호에 대한 우려해서는 안됩니다 암호가 일반 텍스트로 표시 그 어느 것 (또는 저장)하지 않은 점을 감안 감사드립니다.

당신은 정말, 내가 암호가 서버에서 클라이언트로 다시 반향 될 필요가있을 것이다 이유 생각할 수 없다 [AllowHtml]

으로 (보기) 모델의 암호 속성 (들)을 장식 할 수 있습니다 HTML 위생 단계가 필요하지 않아야합니까? (클라이언트에서 비밀번호 규칙 검증을 수행하십시오.)

트로이 헌트가이 here에 대해 설명합니다.

+0

빠른 답변을 보내 주셔서 감사합니다. 이제는 암호 변경과 로그인에 ValidateInput (false)을 사용할 수 있습니다. 내가 가진 유일한 관심사는 사용자 이름과 같은 여러 필드가있는 가입 양식입니다 (사용자 이름은 웹 사이트에서 표시됩니다). 불행히도 [AllowHtml]은 필자가 가지고있는 코드를 제공하는 옵션이 아닙니다 (이전에 작성된 것이므로 지금 변경하기에는 너무 많은 두통이 될 것입니다) – Mihai

+0

사용자 이름이 페이지에 표시 될 가능성이 있으므로 XSS Html 위생 검사는 이것들에 대해 수행되어야합니다. IMO는 면제 될 수있는 단지 암호입니다. – StuartLC

관련 문제