是否应该隐藏获取请求的链接?

时间:2019-06-30 05:01:49

标签: javascript reactjs git fetch-api

我正在使用React开发一个网站。假设我用于提取请求的链接是用于开发的http://localhost:3000/users和用于生产的https://www.mywebsite.com/users。这是一个获取请求以获取用户列表,以便我可以在我的网站上显示它。网站访问者只能通过浏览器查看生产版本。或者,有人可能会以某种方式找到我的github存储库。由于我的前端代码是公开的,因此他们可以看到他们可以使用该链接来获取用户本身的列表。但是,如果获取请求是针对我仅希望其通过网站进行的访问,该怎么办?我有一个发布请求,可以更新用户的余额。例如,https://www.mywebsite.com/change_balance。如果有人查看了我的代码并自己成功完成了获取请求,他们可以欺骗系统并达到所需的平衡。我应该在git仓库之外的文件中拥有链接吗?

我将获取请求的链接放在文件中,然后将其导出到App.js,这样我就不必不断更改开发代码和生产代码。

链接文件

const links = ['http://localhost:3000', 'https://www.mywebsite.com'];

export default links;

在导入后为单个链接声明一个变量,这样我只需在切换到生产环境时就可以更改

const link = links[0];

我的一个使用async await的获取请求

const response = await fetch(`${link}/users`);
// rest of the code

我的链接文件位于git存储库中。如果我将其移到存储库之外,则访问者如果用浏览器检查代码,就应该看不到它,尽管它仍在git历史记录中。我只是在偏执吗,我应该改变什么吗?我不想将我的github存储库设为私有。

1 个答案:

答案 0 :(得分:0)

从不信任客户端。无论。 IP欺骗对基本标头的修改很常见。所有限制和验证都必须在服务器端。您应该放心地假设,如果您拥有公共API,则可以并且会从各种来源调用它。

一些解决方案:

  • 身份验证
  • CSRF(仍然可以在您的应用程序外部模仿)