我正在开发一个webservice + AJAX接口,我担心身份验证。这一刻我将用户名和密码作为参数传递给webservice,但我担心这种方法非常不安全。我被告知ssl可以解决我的问题,但我想要更多的选择。
我的web服务是用php编写的,我的界面是php + AJAX。 web服务从POST或GET接收参数并转发xml(将来也许我会使用JSON)
答案 0 :(得分:2)
有各种标准,如ws-trust,ws-security,ws-federation等,您可以依赖这些标准来保护您的网络服务。
您还可以签署包含安全信息的soap标头。
以下博客详细介绍了使用php的webservices的各种身份验证机制。 http://phpwebservices.blogspot.com/
答案 1 :(得分:1)
AJAX请求与正常请求没有区别。
由于你有一个AJAX界面,我猜你可以有一个用户登录的页面。当他们登录时在浏览器中存储cookie。然后可以随每个AJAX请求发回该cookie。
您的PHP脚本可以使用cookie完全按照正常请求“验证”AJAX请求。
答案 2 :(得分:0)
如果我理解这个问题,你有1)AJAX发布到PHP,2)PHP调用web服务。 您应该具有步骤1的SSL证书。对于步骤2,Web服务计算机上的SSL证书也是安全的。另一种方法是在Web服务器和Web服务的服务器之间建立安全的VPN。
答案 3 :(得分:0)
使用用户凭据的SSL几乎和您一样安全。您必须定义您的安全问题。那个用户的数据包会被嗅到?这就是SSL的用途。未经授权的用户将获得访问权限?这取决于密码安全性。
您可以做的一件事是建立一个租赁系统,您可以在其中分发一个唯一的加密ID,该ID必须在帖子中传递,并在交易后或短时间后过期。可以将此租约代码检索到页面中的隐藏div中(以避免上面的沙箱问题),然后将其插入到每个后续的Ajax请求中。