如何在客户端javascript应用程序中隐藏凭据
我有一个简单的如何在客户端javascript应用程序中隐藏凭据,javascript,Javascript,我有一个简单的javascript客户端应用程序。有两个变量,即username和password,其值如下: var username = "test123"; var password = "test@123" 但问题是,由于这是一个客户端javascript应用程序,这两个值应该进行硬编码才能使用,但是我也不想公开它们 最好的方法是什么 即使我将这些值写入另一个javascript文件并尝试读取它,当页面加载时,用户也总能看到该文件 这种情况有解决
javascript
客户端应用程序。有两个变量,即username
和password
,其值如下:
var username = "test123";
var password = "test@123"
但问题是,由于这是一个客户端javascript
应用程序,这两个值应该进行硬编码才能使用,但是我也不想公开它们
最好的方法是什么
即使我将这些值写入另一个javascript文件并尝试读取它,当页面加载时,用户也总能看到该文件
这种情况有解决办法吗?简单地说,你不能。但是有一个工作要做。你可以用一种方式对密码进行散列,然后用盐将散列发送出去。你不能把哈希去掉。比如说,我们有一个如下的哈希函数:
hashCode = s =>
s.split("").reduce((a, b) => {
a = (a << 5) - a + b.charCodeAt(0);
return a & a;
}, 0);
hashCode=s=>
s、 拆分(“”)。减少((a,b)=>{
a=(a)
s、 拆分(“”)。减少((a,b)=>{
a=(a您可以将凭据存储在后端应用程序上。在后端使用这些凭据,并向需要凭据的原始身份验证服务器发送请求
Your Client =====> Your server =======> Resource Server
此外,在向资源服务器发送请求之前,您可以让服务器(从客户端)需要一个令牌。不建议在源代码中公开凭据,因为这会使您的应用程序易受攻击和脆弱
可能的选项:
- 尝试使用
restapi
方法来满足您的需求(如果可以的话)
- 尝试使用或等效工具使用
变量屏蔽
技术
TL;DR.不可能。但是…阅读我的答案…哦,所以没有可能的方法…不完全是。我现在澄清了…哪里有意愿,哪里就有方法!我不明白这一点。所以你已经输入了const password
,所以当页面加载时,用户不也能看到吗?@JananaHjayarathna我添加了一个片段来解释你是如何做到的可以使用它。@JananathJayarathna TryHello@123
还有另一个密码,然后按enter键检查!我说,我只有一个客户端应用程序,没有服务器。它只是一个带有javascript的html
文件codes@JananathJayarathna我一点也没提到服务器。这是另一个答案。你在哪里找到的我说的是服务器吗?显然,作者并没有提到任何他无法访问服务器的事情。