2010-07-04 124 views
1

我在写一个登录的过程中提交登录信息时/注册形式为我的MVC网站现在面临有关安全和AJAX的问题。似乎越来越多的热门网站正在使用JavaScript来处理登录,并且许多网站使用非https网址(www.giantbomb.com和www.gametrailers.com命名为两个)。我想知道是否有一种方法可以让我做类似的事情,但也可以使用SSL。的安全预防措施与AJAX

我读其他职位,这是可能的,如果JavaScript是从安全网页运行,但如果这是不是一种选择,那么我将如何去做出尽可能安全的交易?

谢谢你的时间!

+0

这是可以做到的加密使用JavaScript。 IIRC,你甚至可以做公钥加密,这可能是最好的方法。我太累了,不能挖掘一些链接,但我想我会提供基本的想法。 – 2010-07-04 13:20:48

回答

0

正如乔治·玛丽安提到,您可以使用基于JS-公钥加密。有severalimplementationsavailable。但是您需要知道,这不是SSL的替代品。主要困难是以安全的方式分配公钥。您可以提高被动窃听的安全性,但除非您可以安全地传输密钥,否则活动的MITM(man-in-the-middle)攻击仍然是可能的。

还铭记记住这必须启用JavaScript为它工作,所以你需要一个明文备用。

如果您需要确保事物真正安全,请使用SSL。

+0

就其性质而言,公钥不需要以安全的方式分发。这就是它的优点,公钥由JS代码用来为服务器加密,而服务器使用私钥解密。 – 2010-07-04 14:25:53

+1

他们需要以不能被第三方修改的方式进行分发。 – igorw 2010-07-04 15:12:21

+0

啊,是的。如果第三方可以用公钥替换公钥并拦截加密的流量,他们就可以解密它。 – 2010-07-04 15:54:29

1

我很害怕,但我真的没有给你一个肯定的回答。不要依赖JS来保证安全。如果攻击者通过纯文本HTTP发送“安全JS”,攻击者可以用恶意攻击替换“安全JS”。恶意JS可以向攻击者发布用户凭证,然后将您的“安全JS”注入用户浏览器。最终用户和您的Web服务/应用程序永远不会知道某人已经捕获了用户凭证。通过“安全JS”我的意思是JS的任何实现 - 无论是不对称还是对称。

0

我不推荐这个,因为它即使你把它安全,它的外观给用户喜欢它是没有的。训练用户在Web浏览器中查找挂锁,如果它不在那里,不要相信它。

(我敢肯定有人会指出我在估计用户的教育,是的,并不是所有的用户都知道这一点,但许多人。)

相关问题