我需要开始担心用户输入。我注意到htmlhelper类在这方面做得不好。任何人都可以提出一个很好的输入消毒框架吗?我使用的是asp.net mvc2。如何处理输入消毒?
0
A
回答
2
DataAnnotations是模型验证的良好开端。有关如何设置数据注释的详细信息,请参阅this link。它们可以与Microsoft MVC JavaScript库或jQuery一起用于执行客户端验证,另外可以使用服务器端验证模型绑定后是否有效。请参阅ModelState.IsValid属性。
虽然注释可能有助于防止和捕获不良用户输入,但它们不会为您输入“消毒”。如果您愿意接受不好的意见并希望处理其消毒,自定义模型联编程序将是一个开始的好地方。 Scott提供了一个good scenario of how to implement one here.。在自定义联编程序中,您可以通过文本输入通过一系列字符串清理方法去除不需要的字符或标准化格式化等。
这两种方法的组合应该使您具备处理几乎所有消毒你可能需要。
3
HtmlHelper类是为HTML输出而不是输入,所以我不明白你的意思是没有做好用户输入卫生的工作。有不同的输入验证方式,如数据注释或使用一些第三方框架,如FluentValidation。如果您正在使用SQL数据库,则还应该确保通过使用预准备语句和参数化查询来避免SQL注入。另外,当您需要在页面上显示用户输入时,您应该始终确保使用<%= Html.Encode("some user input") %>
或更新的语法<%: "some user input" %>
对其进行正确的HTML编码。
1
我建议你不要清理输入,而是清理输出。
这可以避免可能的不当卫生或破坏实际的用户输入。
让用户提交HTML,只要确保显示时它总是被编码。
由于达林指出,使用<%: %>
语法或<%= Html.Encode() %>
利用这个
相关问题
- 1. TinyMCE消毒输入
- 2. 消毒Silverlight输入
- 3. ReactJS输入消毒
- 4. MSMQ中毒消息处理
- 5. 在Matlab中对数据库输入进行消毒处理?
- 6. 从IRC消毒输入
- 7. Zend的消毒输入
- 8. Angular 2输入消毒
- 9. PHP输入消毒剂?
- 10. asp.net消毒用户输入
- 11. PHP输入消毒功能?
- 12. 使用AEM消毒输入
- 13. XSS攻击 - 消毒输入vs拒绝
- 14. 在Rails中消毒RSS输入
- 15. 字符串标记器,消毒输入?
- 16. 对MongoDB的输入进行消毒
- 17. 用Ruby on Rails消毒用户输入
- 18. 使用XSLT消毒数据库输入
- 19. 是否需要密码输入消毒?
- 20. 消毒PHP输入到ping程序
- 21. 消毒前的用户输入验证?
- 22. 简单的用户输入消毒
- 23. 消毒用户输入路径名称
- 24. 使用libpq/libpqxx输入消毒
- 25. 使用javascript/mootools输入消毒功能?
- 26. 消毒json输入到java服务器
- 27. PHP - 非破坏性输入消毒
- 28. PHP输入GET变量消毒
- 29. 如何处理输入?
- 30. Django,将HTML放入模板时自动处理HTML“消毒”,如何阻止它?
我喜欢你的答案,我会研究你的建议,看看我怎么去 – Roman 2010-10-16 14:21:38