如何使REST调用安全

时间:2011-07-01 20:28:50

标签: javascript json security rest

我正在使用REST方法使用JSON / JS / jquery调用Web服务,并且想知道是否有办法调用webservice而不在源代码中公开我的API密钥。任何人都知道如何隐藏API密钥并仍然可以进行呼叫吗?

我担心如果有人浏览我的来源,他们就可以使用我的API密钥了。

2 个答案:

答案 0 :(得分:10)

您可以将呼叫委派给您自己的服务器,而不是:

  1. 浏览器使用API​​密钥
  2. 向外部REST API发送HTTP请求
  3. 外部REST API向浏览器发送响应
  4. 你有

    1. 浏览器向您的服务器发送HTTP请求
    2. 您的服务器使用API​​密钥
    3. 向外部REST API发送HTTP请求
    4. 外部REST API向您的服务器发送响应
    5. 您的服务器向浏览器发送响应

    6. 我不确定其他人“窃取”您的API密钥是一个很大的问题,因为API密钥(例如Google)经常与特定域相关联。

答案 1 :(得分:0)

无法将API密钥发送到客户端,并使其可用,并且不会暴露它们。您更可能想要的是拥有一个转换层,允许外部(未经验证的)客户端对公开的端点发出请求,然后使用某种逻辑来验证请求,然后传递请求。

API密钥通常供您作为合作伙伴使用,而不是用于分发;这是避免分发它们的方法。