如一个正常的SQL语句:select * from users where name = %name 其中的select / from / where都是我们所说的关键字,所有SQL语句在提交web server时,都将进行随机化的编码,一个可能的SQL注入语句经过随机化编码后可能是:select123 * from123 users where123 name = ‘Mike’ OR 1=1,(标红的部分是攻击者提交的构造代码),由于OR 1=1是攻击者构造的数据,不会经过系统自身随机化的编码,所以待提交数据库的前置proxy进行解析时,对OR这个关键字将得不到正常结果,由此可以判 断攻击发生。 这种方法的缺点和上面的一样,都是基于源码级别的修改,需要拥有和修改程序的源代码,是一种侵入式的解决方案,并且从上面的架构图中我们可以看到,这种解决方案的部署较为复杂。