安全的发布Axis Webservice

我这里讲的是Axis 1.4, 使用2.0的可以直接飘过。

通常作Axis 开发用的原型都是${axis.home}/webapps/axis, 我手头刚结束的项目也是照着这个原型把其中的web.xml Copy过来修改而成的。简单的来讲, 用axis开发webservice应用的步聚就四个。
1> copy  axis 原型。
2> 编写WSDL 文件
3> 编写webservice实现
4> 发布

发布一个Webservice 就一句很简单的ant 命令:

看得出来,是AdminService 允许你上传布署文件发布Webservice应用,你可以上传,黑客也可以。 呵呵。

那么如何确保你发布的axis应用是安全的呢, 你可以对照你的应用作一下检查,看看你是否做到了如下几步:

1. 去掉AdminService
在开发环境, 你需要AdminService为你自动布署axis webserivce, 一旦放到生产环境上, AdminService就可以去掉了。

AdminService是一个web服务, 你可以在server-deployer.wsdd 里面找到 AdminService 这一项, 将它删除掉即可, 你还可以找到Version这一项, 这个也没任何用途, 你可以去掉它。

2. 去掉*.jws 支持
我看的很多入门教程一开始就是教我怎么用Axis 开发一个jws webservice, 现在想想这种教程真是浪费时间, 反而让我更没办法理解啥是webservice.

在web.xml 里面, 可以找到对*.jws的Mapping , 我估计将它去掉了就可以了。如下:


    AxisServlet
    *.jws

3. 设置Axis参数 axis.enableListQuery 为 false

如果为True, 则表示任何人有办法得到你webservice中的参数信息, 如 adminPassword等等

我做到以上三点, 已经可以说是有那么安全了,但你还是可以做更多来确保一个更安全的系统。

4. 去掉wsdl 自动生成功能。

也就是说, 生产环境上自动生成wsdl没啥必要, 你完全可以通过Email 把wsdl 给用户, 或者提供wsdl 静态文件供用户下载。在wsdd 的 service 描述之间, 加入如下这一行就可以啦。

/path/to/wsdl

5. 在web.xml 上加一个Filter, 用来验证接入方的IP地址等信息。

6. 双向SSL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值