XSS 첨부를 시뮬레이트하려는 MVC 4 응용 프로그램이 있습니다. 버튼과 텍스트 상자가있어 텍스트 상자에 입력 된 값을 출력합니다. 텍스트 상자에 <script>alert('xss')</script>
을 입력하면 위험한 값이 클라이언트에서 감지되었다는 예외가 자동으로 표시됩니다. 어떻게 학습 목적으로 최소한 이것을 방지 할 수 있습니까? 이제 Furqan의 조언을 따른 후에 예외가 발생하지 않습니다. 그러나 경고 메시지 상자가 나타나기를 기대하지만 스크립트 태그가 문자열로 표시됩니다.VS2012 MVC4 응용 프로그램에서 XSS 공격 시뮬레이션
누군가가 왜 이런 식으로 설명 할 수 있습니까?
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<h2>@ViewBag.Message</h2>
<form method="post" action="/home/index">
<input type ="text" id="text" name="search" value="@ViewBag.Message"/>
<input type="submit" />
</form>
이것은 내 컨트롤러 동작입니다.
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string search)
{
ViewBag.Message = search;
return View();
}
HTTPPost Request에 대한 색인 메소드에'[AllowHtml]'속성을 사용하십시오. –
[AllowHtml]은 속성 – ckv
에 대해서만 유효합니다. 사실을 잊어 버렸습니다. 컨트롤러 동작에'[ValidateInput (false)]'를 사용하십시오. –