几年前,由另外一个团队做的一个XX管理系统,现在也不是我维护,只是代管。近期因18+1大的召开,网··信办开始了对政7府的业务系统进行的检查,很不巧,我们这个老系统就中招了。 国家某检测中心完事后,一级一级下发,最终到我手里。。。
报告中写的是:
最终结论就是有SQL注入。
因之前安全这块也接触的不多,最开始是一脸懵逼的状态,后面网上了解了一下。自己也搭建了一个检测环境,最终毛病出在ibatis上。
原团队中项目中使用了大量的ibatis sql语句,并且参数替换全部用的是$,正确的做法应该是使用#,关于#和$的区别可以查看这篇文章:http://blog.csdn.net/kiss_vicente/article/details/7602900,里面有提到
对于变量部分, 应当使用#, 这样可以有效的防止sql注入, 未来,# 都是用到了prepareStement,这样对效率也有一定的提升
所以把$改成#就可以啦! 本地再次测试就是这样啦