日期:2014-05-17  浏览次数:20675 次

网站被SQL注入延伸的一些安全性思考
我们网站,是一个行业性门户,流量好大,今天被查到有SQL注入,入口是网页里的iframe地址,因为那里的地址是真实的,无重写,地址里有传参数,刚好那个地址请求的程序里变量没做好安全性过虑,被注入了/* AND sleep(5)*/ ,导致一条SQL句子里出现sleep(5),结果可想而知,网站挂了。问题虽然找到了,也解决了。
  于是我去看一下其它相类似的网站,(我们同行的),发现他们很少使用iframe,即使有也不传参数。由此我延伸了我的一些思考,如果网站在过多使用iframe,并且传参数的话,是不是有一些安全隐患呢。即使你的SQL注入防护做得再好。也不能消除这样的隐患,是不是?这个就是我发贴的目的,看参考一下大家的意见。

------解决方案--------------------
注入。。。跟IFrame没有必然联系吧?即便不是IFrame,很多页面也都是传参数的,taobao上的页面随便都可以发现有十几个参数,尤其是你在做检索的时候。

这个基本上是你没有用数据访问组件,或者滥用SQL组装而不是用PreparedStatement才导致的注入漏洞。
------解决方案--------------------
参数化处理。。PreparedStatement。。就是用问号?来替换参数的那种。。
------解决方案--------------------
探讨

参数化处理。。PreparedStatement。。就是用问号?来替换参数的那种。。

------解决方案--------------------
PreparedStatement 是比较底层的 JDBC 封装,如果是用的持久层框架,例如 hibernate的话,尽量不要去拼接 SQL 语句,而是多采用 ? 的形式进行赋值,不会有 SQL 注入隐患的。
------解决方案--------------------
探讨

注入。。。跟IFrame没有必然联系吧?即便不是IFrame,很多页面也都是传参数的,taobao上的页面随便都可以发现有十几个参数,尤其是你在做检索的时候。

这个基本上是你没有用数据访问组件,或者滥用SQL组装而不是用PreparedStatement才导致的注入漏洞。

------解决方案--------------------
我看着也奇怪,PreparedStatement不清楚,也可以做成一个网站,原来是发错版了,呵呵
探讨

谢谢以上各位大牛的指教,我现在才发现我是发错频道.

------解决方案--------------------
探讨
我看着也奇怪,PreparedStatement不清楚,也可以做成一个网站,原来是发错版了,呵呵

引用:

谢谢以上各位大牛的指教,我现在才发现我是发错频道.