输入卫生最佳实践

问题描述:

我们的团队最近一直在为我们的数据库开发逻辑和数据层。我们未被批准使用Entity或Linq to SQL来处理数据层。它主要是手工建造的。很多SQL都是自动生成的。这是一个明显的倒退,就是需要在提取和插入之前对输入进行消毒。输入卫生最佳实践

这样做的最佳方法是什么?搜索像插入,删除等术语似乎是一个很好的方法来实现这一点。有更好的选择吗?

卫生方面最好的方法就是像人类肾脏一样工作 - 默认拒绝所有东西,并挑选出你知道的好/安全。

我假设你已经使用所有外部输入SQL查询的参数。

对输入进行消毒的方式通常也是一种很好的做法,尽可能接近UI。

+3

'这通常也是一种很好的做法,主要尽可能地接近UI来消毒输入。' 但是请注意不要夸大开始在客户端做它:-) – 2010-03-13 23:53:31

+0

是的。我已经看到足够的客户端验证,只是不会陷入陷阱,因此“接近UI”而不是“在UI中”;-) – mfloryan 2010-03-14 19:30:58