security - 如何在没有 SSL 的情况下接受 Web API 上的身份验证?

标签 security api authentication

我正在构建一个与 StackOverflow 非常相似的 Web API提供。

但是在我的情况下,安全性很重要,因为数据是私有(private)的。

  • 我必须使用 HTTP。
  • 我不能使用 SSL。

  • 您向我推荐什么解决方案?

    编辑 : 认证 != 加密

    最佳答案

    几乎每个公共(public) API 都通过为每个 Web 请求传递一个身份验证 token 来工作。

    此 token 通常以两种方式之一分配。

    首先,一些其他机制(通常登录到网站)将允许开发人员检索永久 token 以在其特定应用程序中使用。

    另一种方法是根据请求提供临时 token 。通常,您有一个 web 方法,他们会在其中向您传递用户名/密码,然后您根据是否经过身份验证并授权执行任何 API 操作来返回有限使用 token 。

    在开发人员获得 token 后,他们会将其作为参数传递给您公开的每个 Web 方法。您的方法将在执行操作之前首先验证 token 。

    作为旁注,您对“安全性很重要”的评论显然不正确。如果是,那么您将通过 SSL 执行此操作。

    在任何情况下,我什至都不会认为这是“最低限度的”安全性,因为它只会提供一种错误的信念,即您拥有任何类型的安全性。正如 Piskvor 所指出的,任何有一点兴趣的人都可以倾听或以某种方式打破这一点。

    关于security - 如何在没有 SSL 的情况下接受 Web API 上的身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4509650/

    相关文章:

    css - bootstrap 3 导航栏对齐问题与登录?

    ruby-on-rails - "request invite" gem ?

    java - 如何将未经授权的用户重定向到某个JSP页面? (使用基于声明性角色的授权)

    php - 出于安全原因检查常量

    java - 使用有效 CA 签名的小程序仍显示为未知发布者

    java - Oauth 进程中从 JIRA 获取请求 token 时出错

    java - 获取 Bloomberg Java API 中的前收盘价和 %change 字段名称

    ISP 的 Javascript 注入(inject)

    api - 如何克服 SugarCRM 中的错误 40 "Access Denied -- You do not have access"?

    facebook - 来自 URL 和 session 的 "state"参数不匹配