Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何进行输入卫生处理?_Asp.net_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

Asp.net 如何进行输入卫生处理?

Asp.net 如何进行输入卫生处理?,asp.net,asp.net-mvc,asp.net-mvc-2,Asp.net,Asp.net Mvc,Asp.net Mvc 2,我需要开始担心用户输入。我注意到htmlhelper类在这方面做得并不好。有人能提出一个很好的输入净化框架吗?我正在使用asp.net mvc2 HtmlHelper类是用于HTML输出而不是输入的,所以我不明白你说的用户输入不好是什么意思。有不同的输入验证方法,如数据注释或使用第三方框架,如。如果您使用的是SQL数据库,那么还应该确保通过使用准备好的语句和参数化查询来避免SQL注入。此外,当您需要在页面上显示用户输入时,应始终确保使用或更新的语法对其进行正确的HTML编码。数据注释是模型验证的

我需要开始担心用户输入。我注意到htmlhelper类在这方面做得并不好。有人能提出一个很好的输入净化框架吗?我正在使用asp.net mvc2

HtmlHelper类是用于HTML输出而不是输入的,所以我不明白你说的用户输入不好是什么意思。有不同的输入验证方法,如数据注释或使用第三方框架,如。如果您使用的是SQL数据库,那么还应该确保通过使用准备好的语句和参数化查询来避免SQL注入。此外,当您需要在页面上显示用户输入时,应始终确保使用或更新的语法对其进行正确的HTML编码。数据注释是模型验证的良好开端。有关如何设置数据批注的详细信息,请参见。它们可以与Microsoft MVC javascript库或jQuery一起用于执行客户端验证,还可以用于服务器端验证绑定后的模型是否有效。看看酒店

虽然注释可能有助于防止和捕获错误的用户输入,但它们不会为您“清理”输入。如果您愿意接受错误的输入并希望处理它的清理,那么定制模型绑定器将是一个很好的起点。斯科特提供了一个新的解决方案。在自定义活页夹中,您可以通过一系列字符串清理方法传递文本输入,以去除不需要的字符或标准化格式,等等


这两种方法的结合应该使您能够处理几乎所有可能需要的清理。

我建议您不要清理输入,而是清理输出

这避免了可能的不适当卫生或破坏实际用户输入

让用户提交HTML,只要确保它在显示时始终是编码的


正如Darin所说,使用
语法或
来解决这个问题

我喜欢你的答案,我会研究你的建议,看看我是如何使用NHibernate的,我确信当Criteria类用于与DB交互时,它会对查询进行参数化处理。+1@AM that+HTML编码输出会有很大帮助,想分享更多关于为什么你说它做得不好的信息吗?也许你是说验证。。。