我应该加密浏览器/ javascript内存的内容吗?
这是一个安全最佳实践,我想知道我是否应该浪费我的时间。与之相同,蓝光电影格式的初始破解,黑客只是检查了玩家的内存来窥探一个关键值。我应该加密浏览器/ javascript内存的内容吗?
对浏览器内存做同样的事情似乎是可行的,并且查看JavaScript解释器设置的值 - 我应该加密内存中的数据吗?
想通了 - 它最终是疯了,B/C如果我的浏览器显示在屏幕上的敏感数据,可以想象这部分数据在内存中,可以被窥探。所以这不关心,如果我在JavaScript的某处加密相同的数据。
我有一个艰难的时间来解释我为什么我们不应该去这个级别的安全性上级...
真的,如果你关心浏览器中的一些数据,那么它不应该在那里。当数据发送给客户端时,您可以认为它已被破解,因为您无法确保其安全。其他人提出了一个很好的观点,即将加密信息发送给客户端,但您无法对其执行任何操作,因为您必须将其解密才能显示给最终用户。这就是为什么如果你看看银行的规定,他们从来不会在浏览器上显示任何个人信息(SSN等),除非它是由用户专门输入的(键入然后回传)。
亚当,
这是一个客户端的问题。在为网络编程时,浏览器是客户端,如果不是您的项目范围,则您不需要解决客户端的安全问题。
不要浪费你的时间,因为在显示解密信息时,不可能在客户端存储器中存储加密的内容。事实上,这是不可能的,它变得荒谬可笑!
这就是为什么我的银行网站只在响应中吐出我帐号的最后四个字符。
有多少桌面应用程序花时间加密变量的内容?这完全一样。
这个想法是,你信任使用你的应用程序的人(因为你让他们访问数据),但你不应该发送任何更多的数据给客户端比你愿意显示他们。否则,你会遇到与FPS游戏一样的问题,例如为了显示敌人出现在正确的时间,当他跑到角落时,你必须告诉客户敌人的位置即使玩家看不到他们,他们正在移动什么方向)。如果可能的话,你想摆脱这种情况。
您信任用户,但您当然不应该信任网络,因此在客户端和服务器之间使用SSL之类的东西是有道理的。
不幸的是,你必须信任用户的平台。这是困难的。并非所有的浏览器都是平等的。有些人使用沙箱,这使得计算机上的另一个应用程序(或同一浏览器)难以访问您的客户端数据,但仍然有可能。有些不使用任何形式的沙箱。但是,您可以做的事情并不多,因为您必须解密数据才能将其显示给用户。
因此,您可以做的最好的事情是限制用户可以看到的数据或他们可以采取的措施。
你的上司是对的。
您无权在隐藏信息我的机器从我。幸运的是,从技术的角度来看,这是不可能的。如果你有一个秘密,你不相信我,不要把它发给我。
即使他们不显示它。至少不是我的银行网站。它们将其存储在服务器上,并且只包含响应中的最后四个字符(如果有)。遍布SSL。 – 2009-07-01 19:26:36