在asp.net mvc中清理xss

时间:2011-08-04 19:43:38

标签: .net asp.net asp.net-mvc security xss

在asp.net mvc中清理用户输入的最佳方法是什么,而不会抛出“有潜在危险的request.form”异常,并且仍然阻止对包含危险标记的帖子请求进行xss攻击。

修改 我尝试了AntiXss并创建了自定义编码器,它在运行时对所有提交的值进行编码,但问题是它仍然抛出异常。实际上我并没有弄清楚究竟在哪里(哪个事件)我可以确保请求中没有任何危险,如果它包含危险的东西,我可以将它重定向到另一个Action而不是抛出异常。

1 个答案:

答案 0 :(得分:1)

禁用自动表单检查,并使用Microsoft Anti-Cross Site Scripting Library手动检查XSS的每个相关字段。

当然,在MVC中,一些检查是开箱即用的。例如,如果你的action方法包含一个名为productID的int参数,并且用户提交了一个带有productID字段的表单,那么它将由MVC的模型绑定机制自动填充,你得到一个“强”的int,你可以计算上。里面没有文字,没有问题。 所以你需要检查的是基于文本的字段。