上一篇对SQL注入攻击的原理和危害进行了一个大致的讲解,现在来为大家普及四种常见的防范SQL注入的方法: 错误消息处理 要防御SQL注入,就要避免在网页中出现一些详细的错误信息。 攻击者可以利用这些信息来插入SQL语句,因此使用一种标准的输入确认机制来验证所有的输入数据的类型、长度、规则、语句等。 输入验证 检查用户输入的合法性,尽量限制用户输入特殊的符号,确保输入的内容只包含合法的数据。 在客户端和服务器端都要执行用户输入检查。之所以要执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性。 加密处理 没有加密的数据可以被直接利用,但是加密了就不一定会解密成功,因此尽量不要使用一些常见的加密算法,就算用也要使用32位以上的加密算法,将用户登录名称、密码等数据加密保存。 加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就使攻击者无法利用用户输入来注入SQL命令。 存储过程来执行所有的查询 SQL参数的传递方式将防止利用单引号和连字符实施注入。 此外,它还使得数据库权限只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程,这样就很难再发生SQL注入了。