在VS2012 MVC4应用程序中模拟XSS攻击
Simulating an XSS attack in a VS2012 MVC4 application
我有一个MVC 4应用程序,我试图在其中模拟XSS连接。我只有一个按钮和文本框,它将输出在文本框中输入的值,如下所示。当我在文本框中自动输入<script>alert('xss')</script>
时,会显示一个异常,说明从客户端检测到了危险值。我如何至少出于学习目的防止这种情况发生现在,在遵循Furqan的建议后,这个例外并没有出现。然而,我希望出现警报消息框,但它没有出现,相反,脚本标记显示为字符串。
有人能解释一下为什么是这样吗?
@{
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();
}
您需要在Action上使用[ValidateInput(false)]
,在View:中使用@Html.Raw
控制器:
[HttpPost]
[ValidateInput(false)]
public ActionResult Index(string search)
{
ViewBag.Message = search;
return View();
}
视图:
<h2>@Html.Raw(ViewBag.Message)</h2>
MSDN有一篇关于防止跨站点脚本的好文章:如何:防止ASP.NET中的跨站点脚本。
您可能还想尝试一些安全工具,如Netsparker,它将测试一系列常见和不太常见的攻击向量。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 使用jasmine模拟对服务器的调用
- 模拟谷歌地图中的点击
- 使用模拟按键在输入框中自动输入文本
- 模拟chrome.storage.local函数使用Jasmine
- 从数据库中检索字段,而不模拟它们
- 如何防止在使用.val()时引入XSS漏洞
- react testUtils模拟点击单选按钮而不触发onchange
- 如何在ember单元测试中模拟_super()方法
- Javascript中对象的每个()的模拟值
- 模拟<按钮>在<asp:button>
- javascript上的数字类型模拟
- XSS通过地址栏注入
- 在Android Kitkat上模拟鼠标点击Youtube视频
- 如何照顾CSRF&单页应用程序中不使用cookie的XSS攻击
- Rails:如何在浏览器中显示动态html内容,而不会对其进行转义,也不会引起XSS攻击
- Webscratching自动化如何在没有链接TAG的情况下模拟点击HREF链接
- 用jQuery模拟点击
- 在VS2012 MVC4应用程序中模拟XSS攻击
- 模拟XSS攻击