从客户端浏览器验证/授权AJAX请求

时间:2011-06-15 06:58:32

标签: ajax authentication browser request

我们有一个网络服务,可供在我们注册的客户使用。我们在注册期间获得用户名,密码和客户端的IP /域名。注册客户端可以在其应用程序中使用此Web服务。 如果使用AJAX请求通过浏览器进行webservice调用,我们如何验证客户端。 我们目前通过使用getReferrer(它为我们提供客户端域)进行身份验证。想知道是否有更好的方法来处理此身份验证。

感谢你在这方面的帮助。

由于 Anil K

1 个答案:

答案 0 :(得分:1)

保护Web服务的一种方法需要执行以下步骤:

  • 在您的网站上添加注册客户可以请求“API密钥”的功能。这个“密钥”将是一个唯一的随机字符串(最好是一个固定长度的字符串)。
  • 客户端发出的第一个Web服务调用应该是一个身份验证调用。在此调用中,客户端必须将“API密钥”作为HTTP标头值传递。在服务器端,您应验证传入的IP /域和“API密钥”是否来自已注册的客户端。这样,客户端就不必发送“用户名/密码”进行身份验证。
  • 如果密钥和IP /域匹配,则可以假定此Web服务调用来自有效客户端。现在在服务器端,生成一个“令牌”(一个唯一的随机字符串),并将该“令牌”发送到客户端,作为对身份验证Web服务调用的“响应”。
  • 此“令牌”必须由客户端在每个后续Web服务调用中发送。您必须检查这是否是有效的“令牌”。 “令牌”应在特定时间段后过期。例如,如果在过去15分钟内未使用“令牌”,那么它应该已过期,并且Web服务客户端将不得不再次调用身份验证API。

希望这有帮助,