면도기 html 헬퍼/모델을 사용하지 않는 간단한 웹 양식이 있다고 가정 해보십시오.면도기 HTML 도우미를 사용하지 않을 때 입력이 유효하지 않은 이유는 무엇입니까?
<form id="survey-form" action="@Url.Action("Submit", "Questionnaire")" method="post">
<textarea name="1" form="survey-form">
</form>
위의 양식은 나의 텍스트 입력으로 제어
[HttpPost]
[ValidateAntiForgeryToken]
[ValidateInput(true)]
public ActionResult Submit()
{
NameValueCollection nvc = Request.Form;
return View();
}
<script>alert("xss!")</script>
에서 다음 시험 방법에 게시물 컨트롤러에 의해 검증되지 않습니다
$("#survey-form").submit();
사용하여 제출됩니다. 일반적으로 "A potentially dangerous Request.Form was detected from the client ..."
예외가 발생할 것으로 예상됩니다.
이 메서드는 예외 나 메시지를 반환하지 않으며 실행할 수 있습니다.
는MSDN 설명서
HttpRequest에 클래스는 쿠키, 양식 및 QueryString을 등록를 통해 액세스 요청 컬렉션에 유효성 검사를 수행할지 여부를 추적하기 위해 입력 검증 플래그를 사용했다.
잠재적으로 위험한 값으로 게시 된 양식을 게시하고 처리하고 있으므로 입력 내용의 유효성을 확인할 것으로 기대됩니다.
ASP.NET MVC 규칙을 사용하지 않고도 사용자 입력의 유효성을 검사하기 위해 ValidateInput 특성과 같은 간단한 MVC 도우미를 여전히 사용할 수 있습니까? (예 : 면도기 html 헬퍼 및 모델 등을 사용하여 양식 만들기)
편집 : 실제로 컨트롤러에서 내 액션에 도달하는 값의 혼란이있는 것으로 보이므로 여기에 값이 보여주는 스크린 샷이 있습니다. 기능에 도달하십시오.
입력에 이름 속성이 없으므로 값이 게시되지 않습니다. –
@StephenMuecke 게시 한 예제는 간략하게하기 위해 매우 단축 된 버전입니다. 제안 해 주셔서 감사합니다. 내 실제 프로젝트에서 값이 전달되고 NameValueCollection으로 속성을 읽을 때 내 로컬 창에서 값을 찾을 수 있습니다. 그러나 검증은 없습니다. –
그럼 실제 코드를 보여주세요! –