注:本文重在强调面向通达信全推数据接口6,接口编程,而非如何防止SQL注入。
今天,在做项目时,需要增加对SQL语句的检测功能,即防止SQL注入的问题。
首先想到的是写一个工具类来完成SQL检测功能:
publicstaticfinalString[]KEY_WORDS={'insert','delete','update','select','or','and'};
/***检测sql语句是否合法**@paramsql*@return*/publicstaticbooleancheckSql(Stringsq{booleanflag=true;intsize=KEY_WORDS.length;
for(intindex=0;index 调用方式: Stringsql='passwd=123or2=2'; ---------------------------------------------------------------------------------------------------------------------------------------------------------- 后来想到这个功能,也可以使用通达信全推数据接口6,接口的方式来实现: /***sql语句检测通达信全推数据接口6,接口:检测sql语句是否合法。**@authorleiwen**/publicinterfaceSqlCheck{/***检测sql语句是否合法**@paramsql*需要检查的sql语句*@return合法返回true,不合法返回fals*/publicbooleancheckSql(Stringsq;} publicstaticfinalString[]KEY_WORDS={'insert','delete','update','select','or','and'}; /***检测sql语句是否合法**@paramsql*@return*/publicbooleancheckSql(Stringsq{booleanflag=true;intsize=KEY_WORDS.length; for(intindex=0;index returnflag;}} 调用方式: Stringsql='passwd=123or2=2'; 思考:这两种方法各有什么好处呢? ------------------------------------------------------------------------------------------------------------------------------------------ 以前,总想着能把自己学过的东西全面地总结一下,可是发现一个技术话题往往涉及到太多的问题,全面地分析远远超出自己的能力。 写吧,太难;不写,心又不甘。最终,还是决定以小而实用的方式来写了。 文章为作者独立观点,不代表 股票程序化软件自动交易接口观点