`
ladymaidu
  • 浏览: 681160 次
文章分类
社区版块
存档分类
最新评论

从“为什么不能直接打开PDF文件”说到“脚本攻击”

 
阅读更多

先从一个简单的问题说起。

前两天在网上,有网友问我这样一个问题:“上载到SharePoint 2010文档库中的一个PDF文件,当直接点击此文件链接时,为什么浏览器弹出的对话框只有保存,而没有打开?”

image

就像上面的截图所显示的,在浏览器弹出的对话框上,只能让用户保存(Save)的选项,而没有一个打开(Open)的选项。但可能有人会记得,以前SharePoint 2007的时候,并不是这样的。用户直接点击一个存放在SharePoint 2007文档库里面的PDF文件时,浏览器会提示用户,可以直接打开它,然后本地安装的PDF Reader就会直接打开这个PDF文件,开始阅读。

先说解决这个问题的方法。打开SharePoint 2010管理中心,管理Web应用程序,选择一个Web应用程序,点击Ribbon区域的“常规设置”,然后在弹出的设置对话框中,将“浏览器文件处理程序”这个设置项从默认的“严格”,修改为“许可”。

image

搞定!你会发现修改了这个设置之后,浏览器会重新显示出“打开”选项,让用户可以直接打开PDF文件。

好了,如果你只是想解决这个问题,可以不用继续往下阅读了。

嗯,想知道为什么?好吧,这就是原因。重新将Web应用程序常规设置中的“浏览器文件处理程序”设置项改回默认的“严格”。打开文档库,这次在点击PDF文件链接之前,打开浏览器的Developer Tools(在IE浏览器中是通过F12打开它,下面将使用IE浏览器做例子,FireFox和Chrome也有各自的类似工具可以使用)。在“Network”选项卡中点击“Start capturing”按钮,它会捕获当前浏览器窗口与服务器之间的所有网络通信。然后,点击那个PDF文件链接。

image

在“Network”选项卡里面,找到用户点击PDF链接时所产生的网络请求,双击它,就可以看到这次请求的所有详细的Request和Response信息。点击“Response headers”选项卡,就可以看到从SharePoint 2010服务器所返回的HTTP头信息。嗯,如下图所示,你会看到一个有趣的头信息,“X-Download-Options = noopen”。

image

就是这个HTTP头信息,告诉浏览器:“不要直接打开这个文件,不要给用户显示出打开选项!”

当我们在SharePoint 2010管理中心里面,将Web应用程序的“浏览器文件处理程序”设置项从默认的“严格”修改为“许可”时,SharePoint 2010服务器就会停止在HTTP头里面添加这个头信息,于是,浏览器又会允许用户直接打开文件了。

SharePoint 2010默认会禁止浏览器直接打开所有存放在文档库中的任何文件,方法就是向返回给浏览器的HTTP头信息中添加那个额外的metadata。为什么当用户点击Office文档的时候,仍然会自动打开本地的Office程序,打开Office文档呢?这其实是因为页面上的脚本会调用OpenDocuments这个ActiveX控件,由它来启动客户端的Office程序,打开Office文档。

SharePoint 2010为什么这么做?原因就是为了更好的安全性。由于SharePoint通常会允许非网站管理员上载文件到文档库里面,所以让浏览器随便打开这些用户上载的文件,实际上是一件非常危险的事情。在最严重的情况下,这会给恶意用户提供实施脚本攻击的漏洞,甚至引发跨站点脚本攻击。比如,一个仅仅具备Contributor(参与讨论)角色的用户,可能会上载一个扩展名是.docx,但实际上确实一个含有恶意脚本的.html文件,到文档库中。当管理员尝试打开这个“Word文档”时,浏览器可能会尝试直接打开它,并无意中运行那个文件中所包含的脚本。

当然,除了禁止用户直接在浏览器中打开文档库中的文件之外,SharePoint 2010还在网站的安全性上做了其他一些增强。比如,Contributor现在不能直接上载一个页面文件到Pages(页面)库中,而只能通过Pages库内置的“创建页面”功能,来新建页面。又比如,通过在web.config的<SaveControl>节点中添加“SafeAgainstScript”和“RequiresDesignerPermission”属性,系统管理员可以禁止Contributor修改Web部件的属性。当然,这些又是另外一个话题了。

分享到:
评论

相关推荐

    CVE-2023-38831 WinRAR 远程代码执行漏洞 0Day PoC

    CVE-2023-38831 漏洞位于ZIP文件的处理过程,攻击者可以制作恶意.ZIP或.RAR压缩文件,其中包含无害文件(例如.jpg、.txt或PDF文件等)及恶意执行文件,并以无害文件名为文件夹命名。当用户点击并试图解压缩看似合法...

    网管教程 从入门到精通软件篇.txt

    如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart  创建和删除硬盘...

    PHP和MySQL Web开发第4版pdf以及源码

    5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回一个值 5.10 实现递归 5.10.1 ...

    室内设计装饰公司网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    .net源码 大学网站模板

    基本功能特色 1.全站采用DIV+CSS布局,符合WEB2.0标准,您...15.独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。

    漂亮的.net大学网站模板

    录取查询功能 成绩查询功能 视频播放功能 ...15.独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。

    漂亮清新的绿色企业网站源码

    16.独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 17.采用AJAX技术,性能与效果得到极大提高。 18.前台内容栏目结构清晰,易于访问者查看想要的...

    vc++ 开发实例源码包

    18:单线程下载时不能创建临时文件. 19:下载流文件(rm,Media Player). Notepad++ V5.6.8 源码! 如题。 OA精灵代码 c++版 一套oa系统。 ocxdlgtest dll的一个实例。 OD反汇编引擎(带VC修改版和原版) 如题。主要...

    LED装饰公司网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    工商注册代理公司网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    办公家具网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    通用网站模板 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    蓝色博客网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    货运代理公司网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    智能学校网站管理系统 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    集团公司网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    科技电子产品网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    汽车科技电子产品、GPS导航网站 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    通用网站模板b3 v1.0.zip

    独创模块编辑功能,可自己设计独特的模块(包括但不限于:脚本代码、ASP.NET代码、图片、文字等等,只要你想得到的任何网页元素)供设计模板时使用。 独创全站图片即时替换功能,方便地替换网站中任何位置的图片...

    .net旅游网站模板

    16.独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 17.采用AJAX技术,性能与效果得到极大提高。 18.前台内容栏目结构清晰,易于访问者查看想要的...

Global site tag (gtag.js) - Google Analytics