C# 我必须同时检查UI、编程和T-SQL(带检查约束)端的用户输入吗?

C# 我必须同时检查UI、编程和T-SQL(带检查约束)端的用户输入吗?,c#,sql-server,database,security,C#,Sql Server,Database,Security,或者前两个检查是否足够公平以保护黑客的安全?当我在列中使用检查约束时,性能问题如何?不,您不必在所有三个位置都进行检查。但是,如果您这样做,您的应用程序和数据库可能会更好 签入UI(尤其是使用脚本或HTML)非常有助于以交互方式向用户展示如何更正输入。它节省了到web服务器的往返,并且是一种性能增强,因为用户的CPU用于运行验证代码而不是服务器 如果您想要向逻辑添加新接口,那么签入“编程”(这里我相信您指的是您的业务域逻辑)是很重要的。例如,如果您有一个设计良好的业务层供web应用程序使用,那么

或者前两个检查是否足够公平以保护黑客的安全?当我在列中使用检查约束时,性能问题如何?

不,您不必在所有三个位置都进行检查。但是,如果您这样做,您的应用程序和数据库可能会更好

签入UI(尤其是使用脚本或HTML)非常有助于以交互方式向用户展示如何更正输入。它节省了到web服务器的往返,并且是一种性能增强,因为用户的CPU用于运行验证代码而不是服务器

如果您想要向逻辑添加新接口,那么签入“编程”(这里我相信您指的是您的业务域逻辑)是很重要的。例如,如果您有一个设计良好的业务层供web应用程序使用,那么稍后您还可以使用WCF接口使用相同的业务层,并确信您没有收到无效数据


最后,如果要将数据直接批量加载到数据库中,数据库中的验证规则非常重要。也许合作伙伴业务或客户会向您发送一个您需要加载的文本文件。如果加载例程有缺陷,将规则放在数据库中可以防止损坏数据。

检查什么?有效输入?注射攻击?什么意思?sql中的约束用于验证值是否在给定范围内。它与防止黑客无关,它与数据完整性有关。