5 javascript security ajax code-signing
使用主流现代浏览器之一的用户如何确定即使在不受信任的网络上也运行我未经修改的javascript代码?
以下是有关我的情况的更多信息:
我有一个处理私人信息的Web应用程序.登录过程是JavaScript 中经过密码验证的密钥协议的实现.基本上在登录期间,在客户端和服务器之间建立共享密钥.用户登录后,使用共享密钥对与服务器的所有通信进行加密.系统必须能够安全地抵御主动中间人攻击.假设我的实现是正确的并且用户足够聪明而不会成为网络钓鱼攻击的受害者,那么系统中只剩下一个大漏洞:攻击者可以在下载时篡改我的应用程序并注入窃取密码的代码.基本上整个系统依赖于用户可以信任其机器上运行的代码的事实.我想要一些类似于签名applet的东西,但如果可能的话,我更喜欢纯粹的javascript解决方案.
也许我误解了您的问题,但我的第一个想法是使用 SSL。它旨在确保您正在与您认为的服务器交谈,并且没有人在中途修改内容。在这种情况下,您甚至不必信任网络,因为 SSL 的性质。
这种方法的好处是您可以相当轻松地将其放入现有的 Web 应用程序中。在大多数情况下,您基本上可以将 HTTP 服务器配置为使用 SSL,并将您的http://请求更改为https://.
您可以有一个外部 Javascript 文件,该文件获取登录 JS 的 MD5 哈希值,并向服务器发送 Ajax 请求以验证它是否正确且是最新的。此处使用基本的安全或加密实践 - 公钥/私钥或其他一些方法来确保响应来自您的服务器。
然后,您可以自信地向用户显示客户端脚本已验证,并允许登录脚本继续进行。
| 归档时间: |
|
| 查看次数: |
4549 次 |
| 最近记录: |