2008-11-27 86 views
1

我正在开发一个web服务+ AJAX接口,并且我很担心身份验证。这一刻,我将用户名和密码作为参数传递给webservice,但我担心这种方法非常不安全。我被告知ssl可以解决我的问题,但我想要更多的选择。Webservice身份验证

我的web服务用PHP编写的,我的界面是PHP + AJAX。 Web服务从POST或GET接收参数,然后retreives xml(将来也许我会使用JSON)

回答

1

AJAX请求与普通请求没有区别。

既然你有一个AJAX接口,我想你可以有一个页面,用户登录项。他们登录时在浏览器中存储cookie。这个cookie随后可以随每个AJAX请求一起发回。

你的PHP脚本可以“认证”使用cookie,正是因为它会与正常的请求AJAX请求。

+0

要小心。某些IE版本的“沙盒”AJAX请求来自主页面。然后Cookie不可用... – 2008-11-27 15:46:43

0

如果我理解这个问题,您有1)PHP的AJAX职位,2)PHP调用Web服务。 您应该拥有步骤1的SSL证书。对于步骤2,Web服务计算机上的SSL证书也是安全的。另一种方法是在Web服务器和Web服务的服务器之间建立一个安全的VPN。

2

有各种不同的标准,如WS信任,WS-Security的,WS联盟等,这些你可以依靠,以确保您的web服务。

您还可以签署包含安全信息的肥皂标题。

以下博客详细介绍了使用php的webservices的各种认证机制。 http://phpwebservices.blogspot.com/

0

SSL使用用户凭据是关于安全的,因为你可以得到的。你必须定义你的安全问题。用户的数据包会被嗅探?这就是SSL的用途。未经授权的用户将获得访问权限?这将取决于密码安全性。

一两件事你可以做的是建立一个租赁系统,你伸手,有在后传递和交易后或很短的时间期满后唯一的加密ID。此租约代码可以检索到页面中的隐藏div(以避免上面的沙箱问题),然后插入到每个后续的Ajax请求中。