【问题标题】:API client authentication and data encryptionAPI客户端认证和数据加密
【发布时间】:2012-10-04 02:18:17
【问题描述】:

我正在尝试找到一个合理的解决方案来通过 API 系统在客户端和服务器之间强制执行身份验证。然而,API 本身不是我的问题,我的问题是浏览器通常支持 cookie 和其他让服务器知道它是谁以及它在做什么的方式,但在任何情况下编写的自定义应用程序不一定总是如此可能的语言。

我看过其他一些问题,答案很有用,例如: Authentication between client-side JavaScript application and Server Side HTTP API?

不幸的是,我已经想到了这一点,但它并没有实现我所追求的安全级别。我需要建议的是在实现(或模拟)一种可在服务器和客户端不一定支持 SSL 的服务器到客户端脚本上使用的 SSL 时采取的方法。

同时,这需要用来识别客户端。

总而言之,我需要实现一个会话保持系统和一个可以与 Apache 和 PHP 一起使用的数据加密系统,以及一个在任何设备上运行的以任何语言编写的客户端。

对不起,如果这个问题有点啰嗦。

【问题讨论】:

    标签: php apache api authentication encryption


    【解决方案1】:

    如果不使用 SSL/TLS,您将无法合理地在浏览器和客户端之间建立一个安全系统。原因是无法信任来自服务器或客户端的信息。由于客户端从服务器运行不受信任的代码,因此您也不能信任页面内的任何 JavaScript 等。

    缺少的是一种身份验证方法。 SSL/TLS 通过在浏览器中使用受信任的证书存储来提供此功能。不幸的是,没有(标准化的)方法可以通过脚本语言使用可信存储。您可以尝试使用签名的 Java Applet,但我认为这种方法不会让您受欢迎。

    所以基本上你应该求助于使用 SSL/TLS。我认为不支持 SSL/TLS 的浏览器并不多,不支持的浏览器也不可能支持高级身份验证方法。

    【讨论】:

    • 那么我想从安全的角度来看,我将不得不依靠使用的技术进行通信。另一方面,由于我正在构建 API 服务,是否可以安全地假设任何能够向 HTTP 服务器发送请求的应用程序也能够提供 PHP 能够从浏览器的大多数请求中读取的相同请求标头? PHP 是否能够为此类应用程序保留会话?
    • 这是另一个问题,Flosculus。
    • 谢谢,我把它贴在这里 stackoverflow.com/questions/12717522/… 你回答了我的第一个问题。
    猜你喜欢
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2018-07-22
    • 2021-03-13
    • 1970-01-01
    • 2015-09-06
    相关资源
    最近更新 更多