|
微调你的Web站点以适应Windows XP Service Pack 2(翻译) --- Windows XP SP 2-对Web开发者的安全信息(一)(3) 你可以通过改变内容类型以匹配扩展类型来纠正这些错配,前提是确保这些措施对你的Web站点有利。例外情况:在某些情况下这种改变将是无用的。这些情况是在"content-disposition=attachment"头部信息发送的时候,文件名或扩展名将由服务器来最终决定而不是通过MIME。 你的Web站点有使用下载模态对话框图像,或是在用户点击安装控件的地方显示图像或文字吗? 如果顾客使用了SP2,请确保更新指向下载提示来反映新下载会话的图像。在IE中,你可以使用User Agent字符串来确定显示信息的图像版本。(检测SP2的更多信息参见一般提示。) 你的Web站点有需要数字验证的下载吗? 现在,SP2可以检测那些需要数字验证文件的数字签名。最常见的例子是包括以下扩展名的文件:.exe,.dll,.ocx,.msi。如果你发布过需要信任代码技术验证的文件,那么顾客现在能够去验证你创建的文件。这种应用包含IE浏览器和Outlook Express。 你的Web站点使用弹出窗口吗? 现在SP2下的IE浏览器包含一个默认打开的弹出窗口拦截器。这个拦截器可以干扰那些通过脚本自动弹出窗口的站点。它还包括一个信任列表来列入那些用户允许弹出新窗口的站点。默认情况下,弹出窗口拦截器不会尝试去拦截来自企业内部网和信任站点区域的弹出窗口。 IE浏览器 IE浏览器将会阻止除createPopup()之外的从脚本自动打开的任何窗口。受此影响的一些常用函数是:window.open(), showModelessDialog(), showModalDialog(), and showHelp()。(注意:由于弹出限制,自动指向搜索pane也会被阻止。) 一个由用户直接行为弹出的窗口()将不被阻止。弹出窗口拦截不会默认的应用于企业内部网和信任站点区域。 怎样知道IE浏览器阻止了我的弹出窗口? 如果窗口被拦截,函数将返回一个返回NULL的窗口对象。确保检查window.open()的返回值来避免弹出窗口被拦截时发生脚本错误。 基于一个被拦截的弹出窗口,你的站点使用了转向或关闭页面的措施吗? 无论何种可能的情况下,在被拦截窗口中,都不要做转向或关闭窗口。在弹出窗口被阻止时,如果你转向到另一个站点,那可能更加难于显示被拦截的内容。在这种情况下,转向后的站点将不显示可以使用户便利地访问弹出内容的信息栏。 相似的,如果窗口被拦截时关闭,信息栏将指向不显示弹出窗口的拦截信息。 你的站点从一个弹出窗口载入另一个弹出窗口吗? 任何可能的情况下,不要从一个弹出窗口自动载入另一个弹出窗口,弹出窗口拦截器不认为这是一个用户行为并将阻止它。 你自动载入setHomePage()模态对话框吗? 在SP2中,setHomePage()函数仅仅在一个类似用户行为下弹出窗口。自动载入setHomePage()提示将被阻止。 当有不同步请求的信息时,你的Web站点打开新的窗口吗? 在不同步请求信息后IE浏览器可能阻止站点打开的那个窗口,即使用户点击了一个链接去打开窗口。在不同步的请求信息之前,Windows不会阻止由用户行为(鼠标点击)直接打开的窗口。由用户初始的行为不会被坚持。 你的Web站点是否通过ActiveX控件或其他一些页面对象载入了弹出窗口? 和其它弹出窗口一样,如果一个窗口不是通过用户行为弹出,拦截器将阻止它。一个窗口在响应用户直接行为下被允许打开。 弹出窗口的一般建议: - 不要在弹出窗口失败时转向。
- 如果一个弹出窗口,下载,或ActiveX控件被拦截,不要关闭或自动转向窗口。如果你这样做了,用户将不能够点击信息栏去接受弹出窗口,下载,或ActiveX控件。
- 不要从一个弹出窗口自动载入另一个弹出窗口。
- 不要从用户行为中载入多个弹出窗口。
- 不要从showModelessDialog()或showModalDialog()调用中载入自动弹出窗口。
|