测试输入的大小和数据类型,强制执行适当的限制。这有助于防止有意造成的缓冲区溢出。测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些缓冲区溢出攻击。使用 XML 文档时,根据数据的架构对输入的所有数据进行验证。绝不直接使用用户输入内容来生成 Transact-SQL 语句。使用存储过程来验证用户输入。在多层环境中,所有数据都应该在验证之后才允许进入可信区域。未通过验证过程的数据应被拒绝,并向前一层返回一个错误。实现多层验证。对无目的的恶意用户采取的预防措施对坚定的攻击者可能无效。更好的做法是在用户界面和所有跨信任边界的后续点上验证输入。
带参数的sql语句尽量参数化,
屏蔽" ' , ; < > + = 等等这些可能存在注入的特殊字符。
form提交的时候用post方式,因为get方式提交的时候参数等显示在地址栏中!个人观点!
2、过滤特殊字符
2、数据端用PreparedStatement来执行sql,而且sql不能用拼接的。用“?”来代替变量。