我正在构建一个javascript库,允许使用SRP-6协议对服务器进行身份验证。
我知道使用javascript作为身份验证方法不是最好的选择,由于XSS。但是适当的XSS预防可以消除大多数问题。
我唯一关心的是在用户甚至收到请求之前修改服务器回复有多容易?
示例场景:
用户请求页面:http://serverdomain/home
服务器:回复:
<html>
<head>Home</head>
<script type="text/javascript" src="auth.js"></script>
<body>Home</body>
</html>
在用户收到回复之前。黑客能神奇地修改
的回复吗?<html>
<head>Home</head>
<script type="text/javascript" src="hacker_auth.js"></script>
<body>Home</body>
</html>
这是可能的吗?这是我在使用javascript进行身份验证时所能想到的一个漏洞。
Badaboooooom抓住了它:http://en.wikipedia.org/wiki/Man-in-the-middle_attack你可以使用https来降低风险,尽管如果用户没有注意到"锁"已经消失,http://www.thoughtcrime.org/software/sslstrip/等工具仍然可能使攻击成为可能。
您可以使用像HTTPS这样的安全协议来避免这种情况,尽管一切都可以以某种方式被黑客入侵,但有些方式比其他方式更容易被破坏。