【问题标题】:RESTful authentication without oAuth没有 oAuth 的 RESTful 身份验证
【发布时间】:2013-01-03 23:12:23
【问题描述】:

我目前正在 IIS/PHP5.4 环境中实现 RESTful 服务。

在寻找实现身份验证的最佳实践方法时,大多数人/博客/论坛/stackoverflow 的答案都指向使用 oAuth 进行身份验证。

不幸的是,Windows 上目前没有适用于 PHP5.4 的 mod_oauth 模块。

所以我的问题是:在不使用 oAuth 的情况下为 RESTful 服务实施安全身份验证系统的最佳方法/最佳实践是什么。

或者:如果有人知道一个功能齐全的 oAuth 类,它几乎以独立的方式实现了 mod_oauth 中的方法,那么该信息也将不胜感激。

【问题讨论】:

  • 没有PECL扩展吗?我看到requirements 状态:“PECL/oauth 需要 PHP 5.1 或更高版本,ext/hash 和 ext/pcre。”至于你应该使用什么,最终取决于你的要求。
  • 是的,但不幸的是 windows 无法处理未编译的扩展。它不能编译 pecl 扩展。所以除非有准备好的二进制文件,否则我不能使用它。
  • hereC++ 2008 Express 但扩展看起来仅适用于 5.3... 不确定。无论如何,对于你需要的东西可能有点矫枉过正。如果您只是想了解一些“最佳实践”,请查看任何 OWASP 页面?
  • 您可以完全在 PHP 中进行 HTTP 身份验证,因此您不必使用 Apache 密码文件和/或会话。

标签: php rest oauth


【解决方案1】:

我最终使用hash_hmac (http://php.net/manual/en/function.hash-hmac.php) 使用我的服务器和客户端的私钥将所有提交的数据加密为哈希知道。如果有人以任何一种方式(url/post 数据)修改信息,签名将不再匹配服务器生成的版本,这将导致请求失败。

【讨论】:

    猜你喜欢
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 2014-12-05
    • 1970-01-01
    • 2015-02-02
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多