webservice 的安全性与实用性问题(高分)

morningnet 2005-10-07 09:30:20
安全性:做好了一个webservice(service.asmx),里面有一个方法 sub execsql(sqlstr as string),可以无返回执行sql语句,如果网上有人知道了我的webservice(service.asmx)的名字,则在浏览器上输入:
www.xxxx.com/service.asmx,便可以直接调用方法execsql(),如果他输入的语句是“delete from mytable”,那不是全部把我的数据删完了??这样的安全性怎么保证??
注:www.xxxx.com是我的域名,我的service.asmx放在网站根目录下面。


实用性:做程序都是在本地机调试的,引入web引用的时候都是引用localhost的web引用,可是程序做完了放在其他客户端运行(winform)就找不到localhost的web引用了,不可能每个客户端都将web引用指向服务器地址吧(这样调试麻烦,况且引用还可能修改)?如果我的服务器地址随时变换怎么办?有没有可能在用户登陆的时候就让用户指定一个web服务地址呢?在remoting的winform 是可以这样的,可是我不知道remoting如何实现在远程连接(数据库)。大侠能否给个例子???

...全文
451 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyp2121 2005-10-10
  • 打赏
  • 举报
回复
验证用户函数,只有拥有用户权限才能调用sql执行函数
kisshere 2005-10-10
  • 打赏
  • 举报
回复
安全性: do you know soap head? you can authenticate before you execute sql statement.
实用性: you must can config it
bobo068 2005-10-10
  • 打赏
  • 举报
回复
常用方案:

1.加SoapHead验证。明文加密(对称/非对称)。==》我现用的

2。通道加密ssl+wse2.0数字签名。==》当前最强,环境配置较麻烦



===============================

msn:bobo068@hotmail.com
tangyong12 2005-10-09
  • 打赏
  • 举报
回复
安全性:
在对数据库进行操作的WebService调入使用,除了上面朋友说的一些过滤处理外,最好是做一个状态的跟踪,比如可以在后台数据库建立一个TRACE表,里面存储当前正在执行操作的用户信息,包括用户名密码等,以后每次调用处理数据库的方法时都根据TRACE表里面的内容判断一下。当然了,还有其他的一些方法,如果赤裸裸的不做任何处理,肯定别人是可以做一些删除数据或者破坏性的事情。
实用性:
其实你上面所说的实用性应该是他的一种使用形式,webservice肯定是很实用的,作为分布式的开发,不仅可以做到无缝的链接,也很方便。至于上面楼主说道的问题,你可以用wsdl命令生成一个代理类,然后在配置文件里面配置服务器地址,把代理类里面的地址修改成动态的即可。
zeusvenus 2005-10-09
  • 打赏
  • 举报
回复
关于安全性:
你传入的sqlstr需要经过防sql注入/防DDOS/防跨站点脚本攻击等过滤处理,这些都是基本的。
你不做web service也需要考虑这些处理。

关于实用性:
”在用户登陆的时候就让用户指定一个web服务地址“其实不是个良好的设计,应该由暴露的方法来获取或指出地址而不是用户去选择。选择remoting还是web service由你的需求来决定。

-------------------------------------------------------------------------------
以上纯属个人观点:)
lovelife_821106 2005-10-09
  • 打赏
  • 举报
回复
关键是考虑好那些东西能放到webservice
YAOHE 2005-10-09
  • 打赏
  • 举报
回复
在Web Service执行时加入认证信息
terryshi 2005-10-09
  • 打赏
  • 举报
回复
你可以对webservice上的函数自己进行认证,即使他可以调用webservice,但如果没有通过这个函数的认证,就算执行了也没有用。
jijl2001 2005-10-07
  • 打赏
  • 举报
回复
你自己能让他这么搞,那还有什么不可以的
wersertyy 2005-10-07
  • 打赏
  • 举报
回复
把web引用放到config里去,只要修改config就可以了
wersertyy 2005-10-07
  • 打赏
  • 举报
回复
对数据库直接用sql语句操作的应该只是一两个人。
你的web service 提供的是共享的赤裸裸的数据库操作,既然你都允许他们使用sql了,那就可以删除数据库了。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧