保护用于进行Web Api调用的API密钥

时间:2018-03-21 16:47:00

标签: c# jquery asp.net-web-api

我正在进行Jquery Ajax web api调用。 Api呼叫要求我传递Api密钥。我启用了CORS。以下是我的通话目前的情况

$.ajax({
  type: "POST",
  url: http://localhost:83/test/example1,
  data: { name: JSON.stringify(myObject), userId: UserId },
  dataType: "json",               
  headers: {
      'apikey': 'asdfee'
  });

我的问题是如何安全传递此密钥?我不想直接暴露价值 有任何指示吗?

1 个答案:

答案 0 :(得分:0)

简而言之,您无法在客户端保护密钥。客户端的任何内容都会暴露出来,任何人都可以查看。

话虽如此,你可以尝试这种方法。

  1. 尝试让任何想要获取密钥的人尽可能地努力。这意味着存储在本地存储中并缩小JavaScript代码。这不是100%,但对于任何想要获得它的人来说,这将使生活更加艰难。

  2. 介绍两者之间的另一层。我自己做过这样的事情,这个额外的层是另一个API。这是存储密钥的位置,这是您与其他API通信的位置。所以基本上你永远不会将API密钥暴露给客户端。您的前端调用此新API,新API调用受保护的API。正如我所说,中间有一层额外的层,但它确实有助于保持密钥的安全。