保护 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 服务的不同方法?