MS SQL 2008:我试图寻找这一点,但并没有真正找到答案。我知道所有的用户输入都应该在保存到数据库之前进行消毒和验证,但是我想知道这对于数据库中按大小和类型限制的字段是否也是必需的。是否限制数据库中的字段类型和大小足以满足安全性?
例如,我有几个字段是BIT类型,并且将只允许1个字符,或者int有一个外键指定字段,因此只有外键可以保存到它。
所以,现在,一种形式,我有一个用户发送消息给其他用户,我可以有
- 单选按钮BIT(联系本人是/否)
- 隐藏字段(发送至#用户名#)所以这将把用户的ID放入表
- DateTime字段(在这个日期发送的消息)将由我自动填充,但我把它扔在这里,让我们说我让用户设置时间。
- VARCHAR(最大尺寸2),这一次我想知道,我猜甚至只限于2,一个人可以注入一些恶意成吗?
我需要将它们发送到数据库之前,消毒这些字段,或将数据库句柄,并拒绝输入?
的原因,我问了这一切,是要找出被普遍接受,也为性能的原因。
谢谢。
你列可能是一个'CHAR(1)',它不会发送'阻止我, DROP tbl' – Kermit 2013-03-15 01:04:09
但它不会被插入表中,所以有什么意义? – Amir 2013-03-15 01:26:03
由于表格将被丢弃......应用程序必须执行卫生。 – Kermit 2013-03-15 01:28:29