这是一种安全性最佳实践,我想知道我是否应该浪费时间。
与蓝光电影格式的最初破解同样,黑客只是检查了玩家的记忆,以窥探一个关键值。
似乎可以对浏览器内存做同样的事情,并查看javascript解释器设置的值 - 那么我应该加密内存中的数据吗?
考虑到这一点 - 它最终是疯了,如果我的浏览器在屏幕上显示敏感数据,b / c,可以想象这条数据在内存中并且可能被窥探。因此,如果我在某处加密javascript中的相同数据,那就不重要了。
我很难向上级解释为什么我们不应该达到这种安全水平......
答案 0 :(得分:5)
真的,如果你关心浏览器中的某些数据,那么它就不应该存在。当数据进入客户端时,您可以认为它已被泄露,因为您无法确保其安全。其他人提出了一个很好的观点,即您将加密信息发送给客户端,但您将无法对其进行任何操作,因为您必须对其进行解密才能向最终用户显示。这就是为什么如果你看一下银行的规定,他们就不会在浏览器上显示任何个人信息(SSN等),除非用户特意键入(输入然后发回)。
答案 1 :(得分:0)
亚当,
这是一个客户问题。在为Web编程时,浏览器是客户端,如果不是项目的范围,则不需要也不必解决客户端的安全问题。
答案 2 :(得分:0)
不要浪费你的时间,因为在解密时显示加密在客户端内存中的任何东西都是不可能的。事实上,这是不可能的,这是荒唐可笑的!
这就是为什么我的银行网站只会在回复中吐出我帐号的最后四个字符。
答案 3 :(得分:0)
有多少桌面应用程序花时间加密变量内容?这是完全相同的事情。
答案 4 :(得分:0)
我们的想法是,您信任使用您的应用程序的人(因为您授予他们访问数据的权限),但您不应该向客户端发送比您愿意显示的数据更多的数据。否则你会遇到与FPS游戏遇到墙壁黑客等相同类型的问题(为了表明敌人出现在恰当的时间,当他来到拐角处时,你必须告诉客户敌人在哪里是的,即使玩家看不到它们,它们的移动方向也是如此)。如果可能的话,你想远离它。
您信任该用户,但您当然不应该信任该网络,因此在客户端和服务器之间使用SSL之类的内容是有道理的。
不幸的是,您必须信任用户的平台。这是困难的。并非所有浏览器都是平等的。有些人使用沙盒,这使得计算机上(或在同一浏览器中)的另一个应用程序更难以访问您的客户端数据,但它仍然可能。有些人不使用任何形式的沙盒。但是,您无能为力,因为您必须解密数据以向用户显示。
因此,您可以做的最好的事情是限制用户可以看到的数据,或者他们可以使用它执行的操作。
答案 5 :(得分:0)
你的上级是对的。
您无权从我隐藏 机器上的信息。幸运的是,从技术角度来看,不可能做到可靠。如果你有秘密,你不相信我,不要发给我。