【问题标题】:Secure a public REST API保护公共 REST API
【发布时间】:2012-01-09 13:38:21
【问题描述】:

我在我的网站上提供一项服务并展示广告以免费提供。目前,我正在使用标准的同步 POST 请求:用户提交表单,我的服务器正在处理结果页面并显示它。 由于某些性能原因,我想让我的网站异步:创建一个 REST/JSON API,它将使用 Javascript 从用户浏览器查询,返回将由我网站上的 javascript 代码处理的服务结果以显示它。我担心的是我不想让任何人使用这个 API(可以通过使用一些 HTTP 代理轻松发现)。

您是否已经遇到过此类问题?

谢谢

【问题讨论】:

  • 告诉我们您在服务器端使用的语言/框架/堆栈可能会有所帮助,然后我们可以为您建议身份验证/授权选项。任何 Javascript / JSON / REST / AJAX 基本上都无关紧要;这是一个在服务器上通过识别用户并知道他们可以访问数据的哪些部分来解决的问题。
  • 服务器端是 ASP.NET,客户端是 Ajax。用户是完全匿名的......
  • 对于完全匿名的用户,您无法实现这一点,因为所有用户看起来都一样,因此隐含地拥有相同的权限。您需要在服务器端引入身份验证和授权。否则你只能让它变得更加困难,但绝不是不可能的。

标签: javascript security api rest


【解决方案1】:

听起来您想实现一个身份验证模块。我使用了 2 种不同的(以 Java 为中心的)方法来保护 RESTful Web 服务。

我已将Spring Security 用于一些基本的 HTTP 身份验证,如果您正在实施的服务部署到 Java Servlet 容器或应用程序服务器,则可以工作。它相当轻巧且易于上手。

目前我们在服务中使用OpenAM,这在理论上类似于 Spring 模块,但采用了不同的方法。在我看来,它更健壮且更具企业级,但学习、设置和配置需要更长的时间。

这两种方法都可以让您保护对 RESTful API(网址)的访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2019-06-03
    • 2017-04-15
    相关资源
    最近更新 更多