请教一下关于ajax安全性的问题..
ajax技术中js去访问webservices 由于这些代码对客户端都是透明的.客户端完全可以知道我的webservices的地址.
并直接对webservies进行操作.
如果webservices有写数据等操作的话..就麻烦了
请问各位在ajax的应用中是怎么处理的这些情况 --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 没人知道吗? --------------------编程问答-------------------- 在JS中.你再怎么隐藏也没用...
可以想到的办法有几种.
1. js先用一个ajax请求,发送一个编号(写在JS文件中可以让别人看源码),请求得到webservice的地址是在内存中,再拿这个地址去请求webservice.
2. 直接请求服务端.服务端用两个application,一个是webservice,另一个接收你的ajax请求,转而由它请求webservice,再把结果发回给客户端. --------------------编程问答-------------------- 没有其他的办法了吗? --------------------编程问答-------------------- JS直接面对后台,让后台去面对webservices,再把结果返回给JS调用 --------------------编程问答-------------------- webservice是可以授权的!那样没有权限的就不能访问了!
js访问webservice是不能跨域访问的!如果高手真的用webservice桥来访问那只能给webservice授权! --------------------编程问答-------------------- 由ajax转到后台,通过后台请求webservices --------------------编程问答-------------------- 顶,这个问题值得讨论一下 --------------------编程问答-------------------- js访问webservice是不能跨域访问的!如果高手真的用webservice桥来访问那只能给webservice授权!
-----------------------
不一定是给js来访问啊
webservices让其他的程序访问 怎么控制这个权限呢 --------------------编程问答-------------------- 正如5楼所说。
其实webservice本来是暴露地址的。 --------------------编程问答--------------------
webservices服务本来就是暴露的!
即使是使用winform,不用ajax,底层一抓包,照样找到你的webservices地址。
呵呵! --------------------编程问答-------------------- ajax---xmlhttprequest本身就是暴露地址的。对客户端而言是透明的。在安全性模块要求较高的还是少用 --------------------编程问答-------------------- WebService本来就是公有的类公有的方法,不过要搞破坏也不是那么容易吧 --------------------编程问答-------------------- 这样ajax的应用不是非常的局限了吗???
比如我暴露了写数据的webservice接口.
那别人知道了这个webservice ,那不是一下就被破坏了吗 --------------------编程问答-------------------- 可以这样做更安全些。
先用AJAX访问webservice,然后用一个算法算出一个代号,传给AJAX,然后再把需要的数据传回webservice并带着这个代号。
webservices接到这个代号后,根据算法解码,如果是合法的就正常执行操作。 --------------------编程问答-------------------- 和普通的页面没有差别,你的普通页面怎么验证,就怎么验证。
例如你有一个管理员页面,原本可以用来设置普通用户密码的,是不是别人直接对着管理员页面发一个POST请求就能改密码?显然不是,因为你会先验证当前这个是不是管理员发出的POST。改为Ajax之后也一样,你在Web Service要做验证,不是说既然它能打开管理员才能打开的页面,就信任它。 --------------------编程问答-------------------- webservice suport cookies, first create login method in u service application.client must login then access other method. --------------------编程问答-------------------- 难道你不限制调用来源?? --------------------编程问答-------------------- --------------------编程问答-------------------- 在
http://topic.csdn.net/u/20080503/12/777dff71-2d65-47b3-a98c-f61050d806c4.html的第4楼我是如此回答的。
WEB服务要采用验证访问的话,要采用SoapHeader类了,关于此类的使用方法,在网上或者MSDN上都有介绍。
--------------------编程问答-------------------- 在http://topic.csdn.net/u/20080503/12/777dff71-2d65-47b3-a98c-f61050d806c4.html的第4楼我是如此回答的。
WEB服务要采用验证访问的话,要采用SoapHeader类了,关于此类的使用方法,在网上或者MSDN上都有介绍。
正确使用该类以后,在自己机器上面测试一下WEB服务,在WEB服务的相关方法的XML说明中,会有该WEB服务调用时,需要的XML文档说明。比普通的WEB服务,要多出一个soaphead之类的节点来。普通的只是一个soapbody节点。把相关的权限设置到该节点就OK了。
具体你自己试一下就清楚了。 --------------------编程问答-------------------- 请问具体有人做过吗?
能否提供一些示例参考呢 --------------------编程问答-------------------- 我觉得楼主把概念搞错了,我看了半天其实是WebService的安全问题,而不是Ajax的安全问题,正如我前面据说,用JS直接面对后台,再让后台去面对webservices,然后把结果返回给JS调用,这样完全可以把验证放到后台,至于WebService的安全,首先WebService的地址肯定是暴露的,不然你怎么访问,就像一个类,如果不是public你怎么使用,要解决WebService的安全问题方法有很多种,微软就推出过WSE验证方式,也就是说WebService服务器与客户端装了WSE控件通过WSE进行验证,相关信息可自己搜索一下,其他方法诸如自己写个加解密的类对数据进行操作,或者每次调用WebService时都需验证当前调用的用户的合法性等等. --------------------编程问答-------------------- D调的飘过~ --------------------编程问答-------------------- WebService不用AJAX也有安全性问题。。这个的解决方式可以在方法里多加个KEY参数。可以把这个密钥存到数据库或者是本地文件中。。然后去判断。。传过来的密钥参数是否正确。
补充:.NET技术 , ASP.NET