我的客户有一位正在进行“安全测试”的朋友,他告诉他们我为他们构建的PHP Zend Framework应用程序需要在浏览器端执行这些操作:
这显然是一个非常糟糕的主意。我已经指出它隐藏了网站受SSL保护的事实,浏览器可以选择尊重这些请求,并且真正的破解者无论如何都会找到解决方法,因为它是客户端黑客。
除了这个想法的不好之外,它甚至可能吗?我已经完成的基本测试表明这只能在版本7之前,而在Firefox,Safari,Chrome中完全没有。这家伙坚持说在这些浏览器中是可能的,我还在等待概念验证。
但更好的是:任何真正好的拆除这个想法,特别是来自任何安全机构的来源?
我的客户信任这个人,所以我必须找到一些非情绪化的反驳论点。
由于
答案 0 :(得分:10)
指出
试图通过撞击人们的喉咙“禁用”窗口来实现安全性是糟糕的设计。如果你有一个文件或书签菜单,一个好的网站也不在乎,也不关心后退/前进是否可用。删除它们只会掩盖糟糕的设计决策。
他所做的只是从用户的手中取出一把锤子,但是用户仍然躺着很多岩石。
答案 1 :(得分:3)
不确定这将提供多少帮助,我假设您已经提供了某种工作合同。简单地拒绝这样做。如果必须走开,走开。如果你的客户有一个如此专注于执行此类愚蠢任务的朋友,请让客户的朋友继续这样做并继续前进。
听起来像你已经到了需要走路或可能解雇你的客户的情况。
就个人而言,我甚至会接受这个想法。
祝你好运!
答案 2 :(得分:1)
我同意这是一个非常糟糕的主意,主要是从用户界面的角度来看。通过这样做,您打破了一个隐含的用户/应用程序合同,该合同表明应用程序不应该超出用户的正常界面。简而言之,它会让人失望。
通过提出一些如何绕过它的演示(参见Marc B的回答),拆除这种以某种方式增加安全性的想法应该很容易。
另一点是,如果它是“最佳实践”,你会看到很多人在那里做这件事。但是,你没有,因为它不是。举一些具有良好安全声誉的机构(银行,国防部网站等)的例子,并表明他们不需要这些东西才能保证安全。
答案 3 :(得分:0)
在Chrome中,它可以,但只能通过命令行开关,而不是通过javascript。
例如,假设Chrome已安装到c:/chrome/chrome.exe,那么您可以使用
启动您的网站c:/chrome/chrome.exe --app=http://mysite.com
这对于内部Web应用程序类型的应用程序很有用,但对于一般的Web浏览则不行。
答案 4 :(得分:0)
至于实际说服力,还要求他们展示他们的银行在线会计网站。然后将您的安全方法(https)与在线银行系统(https)使用的方法进行比较。如果他们的银行使用某种形式的地址或状态栏删除,那么您仍然可以采用这种方法。 (只有window.open
,这在当前的浏览器配置中非常受限制。)
Windows用户可视化地感知安全性。提供您的建议,实施客户的愿望,只要他们没有损害,然后走开。不要试图教育不可动摇的客户。
答案 5 :(得分:0)
也许你可以指出Jakob Nielsen(人机交互中的P.H.d.) 在可用性方面已经说过这个:
设计师打开新的浏览器窗口的理论是它将用户留在他们的网站上。但即使忽略了接管用户机器所隐含的用户恶意消息,该策略也会弄巧成拙,因为它会禁用Back按钮,这是用户返回以前网站的正常方式。用户通常不会注意到新窗口已打开,尤其是当他们使用小型监视器时窗口最大化以填满屏幕。因此,尝试返回原点的用户将被灰色的“后退”按钮弄糊涂。