【问题标题】:Net Core - How to manage credentials securely within JavaScript?Net Core - 如何在 JavaScript 中安全地管理凭据?
【发布时间】:2021-10-23 07:26:11
【问题描述】:

我正在考虑在我的 Net Core 项目中使用 JavaScript API(npm 包),我需要从我的 Net Core 服务器获取 API 密钥才能在 JS 中使用 API。过去,我一直在服务器端通过 C# 使用外部 API,因此密码和密钥之类的东西永远不会暴露给 UI/浏览器客户端。

我正在查看的库适用于 Elastic Cloud,https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/client-connecting.html,尽管 API 的选择与问题并不完全相关,因为我更感兴趣的是了解密钥和凭据通常如何在 JS 中安全处理(客户端代码)在使用 NET Core 项目时...

我最初的想法是使用 AJAX 从我的 Net Core 控制器获取 API 密钥和凭据,然后在我返回密钥后立即运行对外部 API 的调用,然后在处理调用后立即我会删除 JS 中的键,但这显然不是正确的做法,因为任何调试 JS 代码的人肯定能够嗅出我不想暴露的细节。

这是一个相当笼统的问题,但我以前没有考虑过,有人可以指出我需要在这里遵循什么程序或方法的正确方向吗?

我意识到通过 JS 调用外部 APIU 可以节省大量开发时间,而不必创建大量服务器端代码,非常感谢

【问题讨论】:

    标签: javascript asp.net-core .net-core


    【解决方案1】:

    不要。如果您不信任客户端调试和反向工程您的代码,获取 API 密钥并执行密钥授予他访问权限的所有操作,那么该密钥在客户端根本没有任何业务。将 API 隐藏在您控制的服务器端层之后,即使它更耗时,它也是安全限制访问的唯一方法

    【讨论】:

    • 我阅读了这篇文章并得出了同样的结论,感谢您的意见,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2017-07-06
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多