考虑为我的网站构建一个 Angular 2 前端。我的问题不一定与 Angular 有关,但我想提供完整的上下文。
向用户显示内容的应用程序逻辑将转移到客户端。因此,在服务器端,我需要通过 RESTful JSON 提要公开数据。让我担心的是,有人可以完全绕过我的前端并使用各种参数执行对服务的请求,从而有效地抓取我的数据库。我意识到通过抓取 HTML 可以实现其中的一些功能,但是使用格式良好的数据公开服务只是轻而易举的事。
有没有办法保护 RESTful 服务?换句话说,有没有办法确保此类服务仅响应我的 Angular 2 应用程序调用?身份验证当然不是这里的解决方案 - 我不想强制访问者进行身份验证,无论如何,刮刀可以很好地进行身份验证并获得访问权限。
最佳答案
我会推荐 JWT 授权。其中一种实现是 OAuth。基本上,您会获得一个 json Web token (JWT),该 token 已由您信任的授权机构签署,该 token 说明用户以及他们可以在您的 api 上访问哪些资源。
如果请求不包含授权 token - 您的 API 会拒绝它。
如果 token 被授权机构签署后试图授予自己特权的人篡改 - 您的 API 会拒绝它。
这是一个非常酷的套件。
此 site有关于不同语言的 OAuth 实现的信息,希望列出你最喜欢的。
一些浅睡时间 reading .
关于angularjs - 如何保护RESTful服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37213936/