在asp.net表单中阻止有风险的字符?

时间:2010-01-19 18:36:27

标签: regex security validation forms

我即将推出一个表单身份验证会员网站,其中包括国际和美国用户可用于更新其个人资料信息和提交产品信息请求(但没有实际电子商务)的表单。我在文本输入上使用asp.net验证控件,我使用正则表达式检测对其进行了非常紧密的过滤。从市场营销中获得一些推动以打开一些(很多),所以我正在寻找一些建议,从安全立场过滤在asp.net表单页面中哪些字符最优先?

感谢您提供此任何提示!

2 个答案:

答案 0 :(得分:1)

当您说提交产品信息请求时,我想要一个自由文本字段,用户可以输入他们想要的任何内容,对吧?在这种情况下,你不应该过滤任何东西。如果它像我想的那样紧,那么我敢打赌这个答案会被认为很糟糕,这会让用户感到沮丧。 =)

最近我们碰到了类似的事情,安全人员想要锁定一大堆特殊字符。结果用户不能在他们的评论中使用句号或撇号或连字符或斜杠 - woops!事实证明它不是必需的,因为正在使用的ORM已经生成了对DB执行安全的参数化SQL语句。

如果您正在使用现代ORM或手动执行针对您的数据库的参数化查询,我不会担心在配置文件字段上强制执行特殊字符限制。

答案 1 :(得分:0)

主要的是确保您不会暴露自己的SQL注入。在.net / MSSQL中处理它的最简单(?)方法是确保使用存储过程或参数化查询。

根据以后如何显示在这些表单上输入的内容,您还需要检查客户端漏洞(例如尝试输入iframe标记或javascript的人)