Javascript 在构建和运行之后,是否可以在浏览器中查看angular中声明的秘密变量?
我想对通过REST-API接收到的数据使用一个解密算法,因为我正在将密钥存储在角组件ts文件中 我想知道,在我构建和部署代码之后。我的密钥是否会在浏览器中的某个地方可见,因为构建的代码是服务器获取的纯javascript 我正在使用crypto js库对数据进行解密Javascript 在构建和运行之后,是否可以在浏览器中查看angular中声明的秘密变量?,javascript,angular,typescript,Javascript,Angular,Typescript,我想对通过REST-API接收到的数据使用一个解密算法,因为我正在将密钥存储在角组件ts文件中 我想知道,在我构建和部署代码之后。我的密钥是否会在浏览器中的某个地方可见,因为构建的代码是服务器获取的纯javascript 我正在使用crypto js库对数据进行解密 var secret_key = "super-secret"; CryptoJS.AES.decrypt(ciphertext, secret_key) 是的,它将对寻找它的个人可见。您不应该在任何客户端代码中存储机密 一旦客
var secret_key = "super-secret";
CryptoJS.AES.decrypt(ciphertext, secret_key)
是的,它将对寻找它的个人可见。您不应该在任何客户端代码中存储机密 一旦客户端进行身份验证,就应该从服务器获取密钥 关于关键存储选项的好文章 WebCryptoAPI的第5.2节讨论了一些关于密钥存储的内容
这里的最佳实践是在后端(服务器端)执行加密/解密操作,并从API中获取解密值如果您可以解释需要它的原因,可能是一个更好的方法 有三种不同的方法可以实现这一目标:-
浏览器中的任何内容都被视为已被破坏。不要这样做。如果你用javascript编写代码,代码将被发送到运行它的人的web浏览器。如果您的密钥是字符串,它将在源代码中清晰可见。我建议将密钥放在.env文件中,而不是服务器端的普通.js文件中。我希望加密本地存储数据,以便用户无法修改它。稍后,我将解密后的localstorage数据用于所有其他操作,如访问控制和权限。用户将始终能够修改localstorage数据。加密无法解决该问题。但解密在修改的本地存储数据上不起作用