1

首先,让我说我是一个关于 REST 服务和客户端 API 的菜鸟......

我正在 NetBeans 中使用 Jersey 和 Glassfish 3.1.2 开发一些 REST Web 服务。这些 REST 服务已经存在,它们都是从 MySQL 数据库自动生成的。

我的下一步是安全!我已经在我的 REST 服务上实现了基本身份验证,并且一切正常(当我进入 REST 服务主页时,Web 中会出现一个带有登录名/密码的窗口)。登录名和密码在我的数据库中。

现在我想在客户端 API尝试使用 REST 服务时实现安全性。什么是最简单和最好的方法?

谢谢!

4

1 回答 1

0

如果可以公开访问,则 REST 服务的入口点必须是实施安全性的地方。您不能依赖用户应该通过登录屏幕才能访问服务的事实。

这意味着服务的入口点需要执行足够的验证才能知道请求是合法的。这可以通过将客户端的凭据直接发送到服务来完成,而不管请求如何。

例如,在我见过的一些 REST 服务中,它可能看起来像这样:

@POST
@Consumes("application/xml")
@Produces("application/xml")
public String theService(@FormParam("someData") String someData, @FormParam("clientProfile") String clientProfile) {
    //parse XML into ClientProfile
    //attempt to authenticate ClientProfile
    //if authentication is unsuccessful, return error message
    //else, perform service's function
}

当然,不要直接采用此模型并通过网络以纯文本 XML 格式发送用户名和密码之类的内容。如果你想这样做,你至少需要加密数据。无论如何,该示例的目的是表明服务首先受到攻击的地方就是您需要确保您应该继续处理的地方。

经验法则:如果您可以使用 URL 访问它,则它需要安全功能。

于 2013-03-11T13:31:48.627 回答