【问题标题】:Restful Authentication Through Ajax通过 Ajax 进行 Restful 身份验证
【发布时间】:2012-02-06 20:13:15
【问题描述】:

我正在实现一个 restful api,我想知道是否可以使用 ajax 安全地进行身份验证而不暴露身份验证凭据?将使用的凭据与使用 curls 传递的方式相同:

curl_setopt($ch, CURLOPT_USERPWD, 'username:password');

将使用以下方式收到:

$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_USER'];
$_SERVER['PHP_AUTH_PW'];

这可能吗?如果可以,怎么做?

【问题讨论】:

    标签: php javascript ajax security authentication


    【解决方案1】:

    没有。这是实现Oauth 的确切目的和用例。

    使用基本HTTP 授权将公开凭据,尤其是来自 ajax 的凭据,因为即使您通过HTTPS 运行所有内容,它仍然可以在客户端代码中使用(在发出任何请求之前)。

    如果您仅在内部使用此 API(不希望第三方开发人员使用它),您可能会尝试使用“API 密钥”而不是纯文本用户名和密码。这样一来,密钥可以在被泄露时重新生成,并且永远不会暴露您的用户(可能)重复使用的密码。

    我发现API key + HTTPS涵盖了很多这样的情况。

    您只需生成一个唯一的哈希,然后使用它来验证用户...Basecamp API 使用 API 密钥作为用户名。

    curl_setopt($ch, CURLOPT_USERPWD, '<API KEY>:x');
    

    【讨论】:

    • 那么,在使用ajax的授权过程中,我应该只检查用户是否有会话吗?
    • 要获得具体帮助,您需要在问题中给出具体目标。
    猜你喜欢
    • 2012-06-05
    • 2021-06-19
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多