现在项目用cxf 做webservice,最后要做安全性问题时无从下手,再网上看了很多基础的demo例子,自己也做出来了使用UsernameToken和密钥加密的例子,但是感觉还有很多问题不明白,例如说客户端调用的时候怎么传递用户信息过来,服务端如何做比较处理,很多demo的用户名和密码都是硬编码的,不知道真实的传递是什么情况。有真实的webservice项目的高手给我指导指导,共同讨论。不胜感激,在线等。

解决方案 »

  1.   

        个人对安全看法:
           在url中:
               1.   写个过滤器 每次url中有像js 代码时可以抛出个异常。 
               2.   url中的参数最好简单点,就是参数名最好不要写数据库字段名。
            在sql语句中:
               1.    语句中的参数最好不要直接写。 可以用 ? 或:name   参数最好也要过滤下  如出现   1=1 , delete  , update的等参数, 最好处理下。
            权限也需要做好控制。 
              其他的就硬件的把。 
     
      

  2.   

    谢谢你的回答,我需要的是webservice方面的安全控制
      

  3.   

    1、请求过滤,保证HTTP请求是合法的
    可以每个HTTP请求中加入私有规则的密文串,服务器对密文串进行比对。
    或者检查HTTP请求端的IP。需要自己建一个IP过滤表,将合法的IP添加进去,然后接收WEBservice请求的验证IP是否在合法IP的列表中。2、对HTTP请求中包含的业务敏感数据进行编码。
    SHA-256等等。服务器接收数据后进行解码。
      

  4.   

    Webservice的加密可以做到很深,比如对底层传输的XML的某个节点进行加密、对数据完整性的校验(通过非对称加密算法)等,这个有一定的难度。官方提出了几个标准,CXF也提供了支持,但是CXF给出的例子并不多。最简单的办法是通过校验用户名和密码,CXF提供了相应的拦截器。至于你说其中的硬编码形式,你完全可以将其改写为非硬编码的形式。如果不涉及到传输数据的加密和完整性校验,以下的这篇博文就可以用:http://blog.csdn.net/keeyce/article/details/7090765
      

  5.   


    推荐的博文类似的中外文章已经看过不下20多篇,自己也已实现,问题在于貌似只能在java 客户端使用, C#及其他如何做?有必要详聊,QQ120280344 忘加我,互相讨论