账号通
    

账号  

密码  

6240

查看

10

回复
主题:[讨论]从KesionCMS V7.0x防注补丁谈谈过滤百分号带来的麻烦 [收藏主题] 转到:  
cz101 当前离线

44

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:492 分
登录次数:149 次
注册时间:2008/6/21
最后登录:2018/1/24
cz101 发表于:2011/7/27 17:56:23   | 显示全部帖子 查看该作者主题 楼主 
做在线知识付费 选科汛云开店

  7月26日发布的 KesionCMS V7.0x防注补丁

  其实就是对

  Public Function G(Str)

  Public Function S(Str)

  两个函数增加了双引号,百分号,星号直接过滤掉.

  由于这两个函数在整个系统中被大面积使用,初步搜索了一下,整个科讯cms系统光引用KS.G()就多达2435处之多,使用的场合非常复杂,如果只是过滤掉内容里像“80%的市场”这样的句子也就算了,问题在于过滤掉这些符号将直接带来很多不可预知的系统功能问题.

  比方说:server.urlencode()之后,url网址里会有很多百分号,像%20做为空格,你过滤掉%号.这个网址就不对啦,在utf-8里面会有更多的情况出现%号,都会导致不可预知的问题.

  所以,这里头的确是个大漏洞,而且一直存在于V7所有版本.但是增加过滤符号只能说是个当前快速的临时的解决办法。而不是真正解决问题的办法。



  这里需要说明的是,能开发出如此优秀的软件,说明咱科讯的技术是过硬的,但是作为系统安全的常识问题,而且是一个调用频率如此频繁的核心代码,为什么咱的技术员能容忍这种低级问题长期躺在那里呢?

  这就让我联想到刚刚发生的"温州动车事故",你可以说中国的高铁技术是世界领先的,技术是世界一流的,但是为什么还会发生动车追尾那么低级的事故呢?



  依我看,按下面的修改更靠谱一些:

  G = replace(G,"0x","0X")

  G = replace(G,"0X","0X")

  因为据我说知,双引号并不对会系统造成危害,*号虽然会造成危害,但是分析了一般的攻击代码后,他一般都要跟单引号,百分号存在,如果攻击代码使用16进制绕过单引号的话,就一定存在0x打头的符号,这就是我过滤掉ox的原因。当然如果你提交的正常内容刚好含有ox的话,那就只好显示的时候再replace回来了。但是不管怎么说,ox出现在概率要远小于百分号吧,不管怎么说,反正我的小站www.czhao123.com一直就是这样处理的。



  "温州动车事故"之后,据说铁路从上到下都要重新严格检查系统安全,我说咱们是不是也应该从来头尾彻底检查几遍,多测试认证几次呢?其实要做到也不难,因为我这种准技术的,都还能找出几个AAA级的重大问题哦,关键是有没有真正用心查过?当然技术员一般都不愿意承认自己的作品有问题有漏洞,因为一但被证实出来存在漏洞就必须加班加点,可是中国人(包括我自己)大家谁都不愿意加班。



  最后,希望咱科讯走得更健康更长远,也希望我的小站慢慢做得更好。哎,总是没时间,挂了个主页在上面就什么都没管了,总想把我的好多想法在我的郴州导航网上实现,可是又什么都没做。

 
  支持(36) | 反对(34) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.19141秒 powered by KesionCMS 9.0