问题描述

  我们SharePoint站点用Excel Service发布的Excel,需要Iframe到其他系统中,但是,Iframe的时候发现报错“此内容不能显示在一个框架中”。

  后来,尝试在其他系统中Iframe SharePoint其他页面,同样报这样的错误;但是SharePoint自己的页面,Iframe自己页面不报错,Iframe自己的Excel Services 页面报错,很奇怪的问题。

问题截图

问题介绍

  经过很长一段时间的搜索,发现是一种安全策略造成的,为了防止“ClickJacking attacks”,然后在查找了一下,这是什么意思,原来是“点击劫持攻击”,下面我们再看看什么是这个点击劫持。

  点击劫持定义 打开一个网页,出现一个flash广告框,你点击“关闭”按钮,可结果广告并没有关闭,却变成了全屏,这样的情况在计算机安全领域叫做点击劫持,也就是说你点击鼠标的行为被人给控制了。

  点击劫持特征 点击劫持是一种恶意攻击技术,用于跟踪网络用户,获取其私密信息或者通过让用户点击看似正常的网页来远程控制其电脑。很多浏览器和操作平台都有这样的漏洞。

  点击劫持作用 可以用嵌入代码或者文本的形式出现,在用户毫不知情的情况下完成攻击,比如点击一个表面显示是“播放”某个视频的按钮,而实际上完成的操作却是将用户的社交网站个人信息改为“公开”状态。

解决方案

  其实问题就是Http响应标头是否有设置X-Frame-Options,我想SharePoint内部应该对这个进行限制了,造成了我们无法访问,而IIS站点的位置,却没有表现出来,然后,试图添加IIS站点的Http响应标头,发现可以解决问题。

1、打开IIS,点击HTTP响应标头;

2、分组的空白区域右键添加,如下节点;

  X-Frame-Options header包括三种值:

  · DENY

  · SAMEORIGIN

  · ALLOW-FROM origin

  简单介绍,DENY就是所有的Iframe都禁止,SAMEORIGIN是本服务器允许Iframe,ALLOW-FROM是定向允许,后面接域名。

解决方案

  以上是第一种解决方案,通过修改网站的Http响应标头,后来查找发现,还有其他的解决方案,通过部署解决方案,禁用SharePoint的限制。这个是一个完整的博客,请参考一下博文。

  在其他系统Iframe中显示SharePoint 页面

  http://www.cnblogs.com/yunliang1028/archive/2013/08/07/3243246.html

解决后效果图

  如下图,可以正常Iframe了,我先使用解决方案二把SharePoint的屏蔽掉,自己使用添加HTTP响应标头的方法,开放我需要的站点进行Iframe。这样,就防止了点击劫持,有能使需要的站点进行Iframe,效果图下面。

结束语

  其实,很想吐槽一下,想了想,这个问题有让自己多了解了SharePoint一番,还了解了HTTP响应标头,还不错,算了,我忍了。做了这么久SharePoint,遇到各式各样的问题,习惯了,好了,就到这里,休息,休息一下~~

  http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx

特别鸣谢

  http://www.cnblogs.com/yunliang1028/博客博主Yunliang Yu的解决方案~

SharePoint Iframe 报错“此内容不能显示在一个框架中”的更多相关文章

  1. SharePoint Iframe 报错“此内容不能显示在一个框架中”<续>

    在之前的SharePoint站点iframe引用中,我们遇到过下面的问题,就是其它系统或者不通环境的SharePoint站点,引用SharePoint页面会报错“此内容不能显示在一个框架中”,之前我们 ...

  2. SharePoint Iframe 一个错误此内容不能显示在一帧&lt;继续&gt;

    在之前的SharePoint网站iframe引用中,我们遇到过以下的问题,就是其他系统或者不通环境的SharePoint网站,引用SharePoint页面会报错"此内容不能显示在一个框架中& ...

  3. Core在IIS的热发布问题或者报错文件已在另一个程序中打开

    关于Core发布到IIS的热发布问题,或者覆盖dll文件的时候会报错"文件已在另一个程序中打开",也就是无法覆盖程序的问题,经过百度和分析总结以下几种方案: 一.使用app_off ...

  4. 类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法

    解决办法是Form类中定义一个静态的ActiveX对象,在formload中将界面上的ActiveX对象赋值给新定义的对象,类中访问该静态对象即可. public static AxClientDri ...

  5. 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中 //作者:sandy //时间:2015-10-10 #inclu ...

  6. 解决iframe加载的内容有时显示有时不显示

    在ASP.NET MVC项目中遇到了这样的一个问题,假设父页面有一个iframe <iframe id=" width="100%" height="10 ...

  7. SharePoint 2013报错之“指定的文件不是有效的电子表格或者没有包含要导入的数据”

    当你尝试用SharePoint 2013中的“导入电子表格”功能时,可能会遇到报错“指定的文件不是有效的电子表格或者没有包含要导入的数据” 解决方法:只需要将你的SharePoint网址添加到浏览器的 ...

  8. 使用Rome读取RSS报错,org.xml.sax.SAXParseException: 前言中不允许有内容。

    这是我遇到过的最奇葩的错误 new URL的时候,使用静态变量就会报错org.xml.sax.SAXParseException: 前言中不允许有内容. URL url = new URL(Strin ...

  9. SharePoint 2013 报错 异常来自 HRESULT:0X80131904

    直接上传文件,报错:该Url xxxx无效.它可能指向不存在的文件或文件夹,或者是执行不再当前网站中的有效文件或文件夹. 直接新建文件夹,报错:异常来自 HRESULT:0X80131904 以系统账 ...

随机推荐

  1. ArchLinux 下架设PPTPD VPN服务

    直接上命令吧: 安装: pacman -Sy pacman -S pptpd 配置: vim /etc/pptpd.conf option /etc/ppp/options.pptpd stimeou ...

  2. messages.exe病毒的清理

    一.问题提出 20161021,10点05分,发现messages.exe突然出现在进程中,计算机突然重启,msconfig启动目录里多了一项c:\windows\system32\Drivers\m ...

  3. CENTOS 基础指令——查看系统环境

    1.查看内核版本 # cat /proc/version # uname -a # uname -r 2.查看linux版本 # cat /etc/issue # cat /etc/redhat-re ...

  4. 【Web】Eclipse + Maven + Struts搭建服务器

    一.环境 系统:Windows7 IDE:Eclipse-Kepler Service Release 2 使用插件:Maven(请预先在电脑上安装Maven) 二.搭建 在Eclipse中新建一个M ...

  5. Dbvisualizer9.0.6 解决中文乱码

    一.设置编辑器的编码 Tools->Tools Properties ->General->File Encoding 设置为UTF-8 二.如果数据库为UTF-8,则要在连接时做以 ...

  6. MyBatis知多少(2)

    MyBatis从目前最流行的关系数据库访问方法中吸收了大量的优秀特征和思想,并找出其中的协同增效作用.下图展示了MyBatis框架是如何吸收我们在多年使用不同方式进行数据库集成的 开发过程中所学到的知 ...

  7. C#连接Oracle简单教程

    要点:本文主要介绍如何使用最简单的方法让C#操作Oracle数据库,不需要安装Oracle客户端之类的东西. 最近由于工作需要,要使用C#从SQLServer向Oracle导入数据.之前没有怎么接触过 ...

  8. 【转载】Debian/Ubuntu常见安装软件错误解决方案

    转载自:http://blog.csdn.net/eqera/article/details/6375293 1.错误: Can't find X includes. Please check you ...

  9. canvas剪裁图片并上传,前端一步到位,无需用到后端

    背景: 当前主流的图片剪裁主要有两种实现方式. 1:flash操作剪裁.2:利用js和dom操作剪裁. 目前看来这个剪裁主要还是先通过前端上传图片到服务器,然后前端操作后把一些坐标和大小数据传到后台, ...

  10. js-初步了解

    一.javascript的由来 Javascript是一种web技术,最初起名叫LiveScript,它是Netscape开发出来一种脚本语言,其目的是为了扩展基本的Html的功能,用来替代复杂的CG ...