![]() |
1
2
为了保护您的javascript,您必须在一个有保证的、无限制的环境中检查它。因为您不能在浏览器中创建这样的环境,所以这是不可能的。你最好的选择是通过https下载javascript。这不安全,但更好。可能的攻击向量左:
|
![]() |
2
2
马特 我相信(尽管反对者)你所要求的并不是不可能的,只是非常困难。您要问的是,完全可以被滥用的代码允许用户在服务器上标识自己,反之亦然。一种可能的方法是使用零知识证明,它不会向窃听者(EVE)泄露任何信息。例如,服务器可能提供一个javascript,它绘制一个图形的表示,该图形将用户提供的无值信息单独组合到EVE中,而服务器提供的信息也没有值。javascript可能已经被修改过,但要么无法提供正确的图表(此时用户离开),要么成功。在后一种情况下,用户同样提供了“零知识”证据,证明他们具有图的同构表示;同样,这要么成功,要么失败。另外,看看SRP协议,但问题是它是一个专利雷区。参见弗格森和施耐尔的实用密码术。乔 |
![]() |
3
1
这是不可能的。如你所说:如果你不能验证来源,中间的人会攻击你。 可以 替换客户机接收到的任何内容,即客户机解释和执行的任何内容。 |
![]() |
4
1
你说你唯一的问题是一个中间人修改你用来执行sha1的javascript。因此,我猜您正在使用用户名+密码sha1登录…. 这是完全不安全的,即使没有javascript篡改。即使中间人可能不知道简单的密码,如果不修改javascript,他将知道散列,他可以完全使用散列来执行自己的登录,只需重放它。 即使您包含salt/nonce,中间的人现在仍然可以使用这些令牌,甚至可以通过执行密码/电子邮件更改来窃取帐户。 即使忽略了这一点,并且假设您实际上可以绕过所有这些+实际获得一个javascript来测试第二个javascript的完整性,您如何防止“验证脚本”也被篡改?您一直依赖于通过不安全通道发送的脚本,以确保这些数据的安全性(并且可以递归地继续使用检查脚本完整性的脚本,检查脚本的完整性…)所有这些都被完全篡改,因为它们是通过不安全通道发送的。 唯一的方法是在HTTP之上建立一个安全的通道,它需要一些客户端附加程序(一个火狐插件/一个ActiveX扩展),但是拥有对HTTPS的本机支持,这是非常荒谬的。 |
![]() |
5
0
因为它们在客户机中,所以您无法访问它们。 这就是网页的本质… 尝试在服务器端使用重要的东西… |
![]() |
6
0
如果您的安全体系结构以某种方式要求在javascript中运行函数,那么您的安全就有缺陷。 |
![]() |
7
0
有了javascript,人们可以抵御被动网络攻击(例如窃听WiFi流量),但如果入侵者能够控制HTTP响应头和主体数据,您就无法保护自己免受主动网络攻击。 如果不想支付SSL证书的费用,可以创建一个自签名证书。然而,这只会防止被动网络攻击,但比您创建的一些黑客javascript实现容易得多。 本质上,您需要一个CA签名的SSL证书来防止主动网络攻击(中间的人)。 |
![]() |
8
0
只有在服务器和客户机以前共享秘密的情况下,并且只有在服务器和客户机以前共享秘密的情况下,才能在客户机上验证javascript文件的完整性。在互联网上,情况往往不是这样。如果这样的秘密不可用,那么任何验证传输的javascript的尝试都可能被破坏。这是一个第22种情况。 大多数情况下,人们希望确保JS的完整性,因为这让他们觉得可以在客户端委托安全检查。在密码学中,有一个基本规则不应该被打破:永远不要信任远程用户输入。总是重复检查。 ssl/tls可以使中间人攻击更难实现,但它并非无懈可击。 |
![]() |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
![]() |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
|
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |