我正在使用客户端Google的翻译API(v2),这意味着我的API密钥将公开显示给所有人。我正在通过AJAX调用 / translate 方法。
在Google>下证书> API密钥 - >关键限制 - >申请限制
我想仅允许从 www.aliceandbob.com 域调用API。
在以下网址添加此域名后: HTTP引荐来源(网站)。我收到403禁止错误,但当我手动将http referer标头设置为我的http请求时,它会通过,API会回答我的回答。
function sendPost($data)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://translation.googleapis.com/language/translate/v2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
--> curl_setopt($ch, CURLOPT_REFERER, "http://www.aliceanbob.com");
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
传递数据
$ data = array('q'=>'这是世界','目标'=>'de','key'=>“#my_api_key#”);
回复OK 200。
但是当我删除时:
curl_setopt($ch, CURLOPT_REFERER, "http://www.aliceandbob.com");
我收到了回复:
403来自referer \ u003cempty \ u003e的禁止请求被阻止。
任何想法如何只防止一个网站(域)可以正确调用API调用,但不允许任何其他人手动设置http referer和act域( www.aliceandbob.com )?