在建立一个交互式Web站点时,开发者的任务之一就是确保在不同的操作系统上可以用各种浏览器来访问站点。但还有一个更有挑战性的任务,这就是如何应对不同的浏览器安全设置。
当我们某一个开发小组完成一个Web站点之后,我常常歉疚的指出该站点关于浏览器设置方面所存在的问题。尽管测试新站点是否工作正常是我的一部分工作,但开发小组还是认为我是一个令人扫兴的人。
我常常做的事情就是禁用脚本和cookie,然后看Web站点的主要部分(或者整个站点)是否完全停止工作。如果发生了这种情况,我就要求开发者进一步找出这个问题。
我敢说你们中的所有人几乎都在最近几天看到过弹出式广告。聪明的用户会通过禁用脚本这一简单的方法来避开弹出式广告。问题是这样做也禁用了脚本其它与弹出式窗口无关的用途,这样就限制了许多网站的功能。这个问题带来了一个新的创新点:新式的浏览器可以把站点列表归到不同的安全类别下,从而解决了上述问题。
如果你的主页过于依赖脚本,以至于用户禁用脚本后根本就不能访问菜单以及导航页面,那么他们就不会在你的站点上多做停留。所以,如果你的站点的确需要脚本,那么需要确保用户在禁用脚本的情况下还可以看到部分内容。
例如,当我禁用脚本时,我就发现许多Web站点丢失了部分内容、甚至主页整个就是空白的。当我查看源代码之后,发现这些站点需要JavaScript来生成内容、甚至整个页面只有一个Flash对象。
浏览器cookie的混淆也会给站点带来麻烦。我们首先谈谈关于cookie的基本知识:cookie分为两类:会话(session)cookie和永久性(persistent)cookie。当用户关闭浏览器时,会话cookie也随之关闭,而永久性cookie则会保留下来。
像大多数开发者那样,我默认禁用永久性cookie;有些人喜欢完全禁用cookie,我不建议你这么做。如果一个交互式Web站点需要cookie但对cookie不进行检查,那么可能会访问失败,甚至显示混乱或者错误的信息。
我曾看到某些站点在需要cookie的区域显示出莫名其妙的错误诊断信息——甚至当用户禁用cookie时也是这样。浏览器同样可以通过调整安全设置来修正这个错误,但是如果Web站点需要cookie时,你应该通知用户开启cookie。
如果你的站点交互性很强,需要JavaScript或者VBScript——或者需要cookie——你可能就会遇到麻烦了。为了应对最近蠕虫和其它病毒的攻击,许多用户把浏览器设置为最高安全状态;这种安全设置会禁止对依赖脚本或者cookie的Web站点的访问。
当拿不准时,选择一条比较实在的方法:进行经常性的测试,确保用户在禁用脚本和cookie的情况下,站点的主要内容依然可以传递给用户。Web站点不能控制浏览器的安全设置——这就是需要开发者进行幕后工作的原因。