在asp.net mvc中清理用户输入的最佳方法是什么,而不会抛出“有潜在危险的request.form”异常,并且仍然阻止对包含危险标记的帖子请求进行xss攻击。
修改 我尝试了AntiXss并创建了自定义编码器,它在运行时对所有提交的值进行编码,但问题是它仍然抛出异常。实际上我并没有弄清楚究竟在哪里(哪个事件)我可以确保请求中没有任何危险,如果它包含危险的东西,我可以将它重定向到另一个Action而不是抛出异常。
答案 0 :(得分:1)
禁用自动表单检查,并使用Microsoft Anti-Cross Site Scripting Library手动检查XSS的每个相关字段。
当然,在MVC中,一些检查是开箱即用的。例如,如果你的action方法包含一个名为productID
的int参数,并且用户提交了一个带有productID字段的表单,那么它将由MVC的模型绑定机制自动填充,你得到一个“强”的int,你可以计算上。里面没有文字,没有问题。
所以你需要检查的是基于文本的字段。