网站被SQL注入延伸的一些安全性思考
我们网站,是一个行业性门户,流量好大,今天被查到有SQL注入,入口是网页里的iframe地址,因为那里的地址是真实的,无重写,地址里有传参数,刚好那个地址请求的程序里变量没做好安全性过虑,被注入了/* AND sleep(5)*/ ,导致一条SQL句子里出现sleep(5),结果可想而知,网站挂了。问题虽然找到了,也解决了。
于是我去看一下其它相类似的网站,(我们同行的),发现他们很少使用iframe,即使有也不传参数。由此我延伸了我的一些思考,如果网站在过多使用iframe,并且传参数的话,是不是有一些安全隐患呢。即使你的SQL注入防护做得再好。也不能消除这样的隐患,是不是?这个就是我发贴的目的,看参考一下大家的意见。
------解决方案--------------------注入。。。跟IFrame没有必然联系吧?即便不是IFrame,很多页面也都是传参数的,taobao上的页面随便都可以发现有十几个参数,尤其是你在做检索的时候。
这个基本上是你没有用数据访问组件,或者滥用SQL组装而不是用PreparedStatement才导致的注入漏洞。
------解决方案--------------------参数化处理。。PreparedStatement。。就是用问号?来替换参数的那种。。
------解决方案--------------------
------解决方案--------------------PreparedStatement 是比较底层的 JDBC 封装,如果是用的持久层框架,例如 hibernate的话,尽量不要去拼接 SQL 语句,而是多采用 ? 的形式进行赋值,不会有 SQL 注入隐患的。
------解决方案--------------------
------解决方案--------------------我看着也奇怪,PreparedStatement不清楚,也可以做成一个网站,原来是发错版了,呵呵
------解决方案--------------------