asp.net MVC 2控制器是否自动清理sql注入的viewmodels,还是我必须手动?

时间:2010-08-19 14:21:03

标签: asp.net-mvc

当一个viewmodel被传递到asp.net mvc控制器时,输入是否会针对sql注入自动清理,或者我是否必须使用来自Microsoft Antixss库的AntiXss.GetSafeHtml清理我的viewmodel上的每个属性?

我是MVC的新手,所以我不熟悉asp.net mvc控制器所做的幕后工作。

谢谢!

编辑 - 我的意思是说我应该清理我在sql堆栈中使用的输入。 MVC中的防伪令牌是否足以阻止xss?

1 个答案:

答案 0 :(得分:0)

我不相信它们已被消毒了,虽然你似乎在你的标题中引用sql注入和你的文本中的XSS - 你担心哪些?

您仍然需要正确地参数化任何SQL查询,并且前端的任何html输出都应该在Html.Encode()中。


要回答评论,我认为前端不应该进行任何类型的SQL验证(因为有简单的清理方法),而是依靠正确的参数化查询来阻止这种攻击。任何其他方式都可以解决。


此外 - 防伪令牌可以缓解跨站点请求伪造(XSRF),而不是XSS。在<script>alert("Hello");</script>中输入您的一个文本框,然后转到您网站上可能直接在屏幕上输出的另一个页面(例如,在表格中或作为只读视图) - 如果您没有正确编码这个,你有问题。