保护 RESTful Web 服务 URL [重复]

Posted

技术标签:

【中文标题】保护 RESTful Web 服务 URL [重复]【英文标题】:Protect RESTful webservice URL [duplicate] 【发布时间】:2017-01-19 01:01:32 【问题描述】:

如何保护 REST 网址?

例如,我有一个像 https://localhost/8080/user 这样的 GET URL。它将给出一个用户列表。如果有人在访问这些信息,我该如何保护它?

【问题讨论】:

您可以使用任何可用于 HTTP 的身份验证机制(以及更多来自 HTTPS 的身份验证机制)。非常常见的是您使用 Authorization 标头传递的“访问令牌”。 docs.oracle.com/cd/E24329_01/web.1211/e24983/… 如果我使用 Angular js 通过调用 url 使我的视图成为一部分,这种安全机制是否适用? 【参考方案1】:

从服务器的角度来看,回答一个安静的服务请求和回答一个页面请求没有区别。

因此,您可以使用完全相同的机制。

无论以何种方式请求其余服务,这都是有效的:来自应用程序、来自 Angular 等

具体例子

最常见的是使用带有密码身份验证的登录,它为用户提供一个 cookie,该 cookie 在稍后发出请求时与请求一起发送。

为了做到这一点,您可以拥有一个 RESTful API 端点,例如“login”,它将通过指定用户名和密码来调用。

它可能看起来像这样:

https://yoursite.com/api/login?user=xxx&pwd=xxx

然后您的服务器将检查用户名和密码是否正确,如果正确,则简单地回答几乎空的消息,但包含以下标题:

Set-Cookie: session=yyyyyyyyyy

稍后,您的用户可以正常查询您的restful服务,cookie会自动添加到他们的请求中。您的服务器将能够检查会话 ID 是否有效,如果不拒绝资源。

【讨论】:

感谢 vic 和 thilo 。这对我来说很有意义

以上是关于保护 RESTful Web 服务 URL [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apache Shiro 保护 RESTful Web 服务

如何在不使用身份验证的情况下保护 RESTful Web 服务

如何保护 Angular.js 或 Ember.js 的 Spring RESTful Web 服务

仅由一个或两个客户端使用的 java 中保护 RESTful Web 服务的不同方法?

如何使用 SSL/TLS 和/或消息级安全性保护 RESTful php Web 服务

Web API 2 - RESTful 服务 - URL 编码