我正在实现一个restful api,我想知道是否可以使用ajax安全地进行身份验证,而不暴露身份验证凭据?将使用的凭据与使用curls传递的凭据相同:
curl_setopt($ch, CURLOPT_USERPWD, 'username:password');将使用以下方式接收该邮件:
$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_USER'];
$_SERVER['PHP_AUTH_PW'];这是可能的吗?如果可能,如何实现?
发布于 2012-02-07 04:16:02
不是的。这就是实现Oauth的确切目的和用例。
使用基本HTTP授权将公开凭据,尤其是来自ajax的凭据,因为即使您通过HTTPS运行所有内容,它仍将在客户端代码中可用(在发出任何请求之前)。
如果您仅在内部使用此接口(不期望第三方开发人员使用它),您可以尝试使用"API Key“而不是纯文本用户名和密码。这样,如果密钥被泄露,密钥可以重新生成,并且永远不会暴露您的用户(可能)重用的密码。
我发现API key + HTTPS涵盖了很多这样的情况。
您只需生成一个唯一的散列,然后使用它对用户进行身份验证……Basecamp API使用API key作为用户名。
curl_setopt($ch, CURLOPT_USERPWD, '<API KEY>:x');https://stackoverflow.com/questions/9166600
复制相似问题