假设我有一个身份验证方法,我可以通过 http post 从服务器获取 token :
$http({
method: 'POST',
url: '/Token',
processData: false,
contentType: 'application/x-www-form-urlencoded',
data: "grant_type=password&username=" + UserName + "&password=" + Password
...
这里我以明文形式发送用户名和密码。
如果我使用 JavaScript 函数 btoa() 来加密我的用户名和密码(该函数很好用,建议使用 How can you encode a string to Base64 in JavaScript? ),如下所示:
$http({
method: 'POST',
url: '/Token',
processData: false,
contentType: 'application/x-www-form-urlencoded',
data: "grant_type=password&username=" + btoa(UserName) + "&password=" + btoa(Password)
...
这对我真正帮助我应对哪些安全威胁?我的意思是,事实上,我网站上的任何人都可以访问我的 javascript 代码,因此可以找到调用 btoa() 的脚本。然后他们可以使用 atob() 解密用户名和密码,然后我又回到了第一步。
最佳答案
btoa() and atob()函数不提供任何安全改进,因为它们不加密/解密,而只是将数据编码/解码为文本表示并返回到原始外观。通常这些函数用于二进制数据,如图像等。
使用 btoa() 编码的字符串,任何人都可以使用其相反的函数轻松对其进行解码。听起来不安全,是吗;)
关于javascript - javascript 中的 btoa() 可以帮助我应对哪些安全威胁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36549279/