SharePoint Iframe 报错“此内容不能显示在一个框架中”

问题描述

  我们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的解决方案~

时间: 2025-01-19 13:48:45

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

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

在之前的SharePoint站点iframe引用中,我们遇到过下面的问题,就是其它系统或者不通环境的SharePoint站点,引用SharePoint页面会报错"此内容不能显示在一个框架中",之前我们采取了解决方案的办法. 今天,无意中翻看msdn,发现了更加简便的方法,分享给大家. 原理介绍 在大部分情况下,如果网页在响应中发送 X-Frame-Options HTTP 头,则该网页将无法在框架中显示.默认情况下,SharePoint 网页包含 X-Frame-Options 头.如

SharePoint Iframe 报错:此内容不能显示在一个框架中

问题描述 我们SharePoint站点用Excel Service发布的Excel,需要Iframe到其他系统中,但是,Iframe的时候发现报错"此内容不能显示在一个框架中". 后来,尝试在其他系统中Iframe SharePoint其他页面,同样报这样的错误:但是SharePoint自己的页面,Iframe自己页面不报错,Iframe自己的Excel Services 页面报错,很奇怪的问题. 问题截图 问题介绍 经过很长一段时间的搜索,发现是一种安全策略造成的,为了防止"

kernelbase.dll-C# KERNELBASE.dll报错看内容

问题描述 C# KERNELBASE.dll报错看内容 C#写的应用程序,在本机正常,32位,但是在一个64位的电脑上没有办法运行,后来我在另一个64位上运行也是好的:我已知道是哪个dll有问题了,((System.ComponentModel.ISupportInitialize)(this.A)).EndInit();时出的错.A为A.dll,但是为什么其他2台是可以运行而只有那个不可以.还有在事件查看器windows日志中却看到是KERNELBASE.dll报错 :错误应用程序名称:A.e

tomcat-web项目不报错,页面确显示错误

问题描述 web项目不报错,页面确显示错误 web项目部署到tomcat之后,后台没有报错,用浏览器访问就出现如下的页面 右键复制图片地址单独访问的话没有任何问题. 解决方案 没有看到报错的信息. 解决方案二: 打开游览器的控制台,看看url对不对.是不是路径少写了"/"什么的 解决方案三: 图片不能显示是图片的url不对,js文件找不到是另外的问题. 解决方案四: 首先,你要确定好你的图片的访问位置是否存在,比如图片你应该的位置是你的项目部署在tomcat的位置,比如:你通过 loc

dsp ccs-新手求助 CCS3.3 报错提示变量未定义(代码中作为全局或局部变量已经定义了)

问题描述 新手求助 CCS3.3 报错提示变量未定义(代码中作为全局或局部变量已经定义了) 图1 是ccs报错的提示 "TSK_OFDM.c", line 50: error: identifier "FFT_inputBuf" is undefined "TSK_OFDM.c", line 51: error: identifier "FFT_outputBuf" is undefined 以上是ccs的报错提示. 图2 是

用Java编辑设计软件启动界面时无报错,但不显示

问题描述 全部代码如下:importjava.awt.BorderLayout;importjava.awt.Cursor;importjava.awt.Dimension;importjava.awt.Toolkit;importjava.net.URL;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.

怎么把文件中的内容直接显示在网页中

问题描述 就像提问的时候这种编辑的模式,可能既有文字,也有图片表格什么的,这种文件怎么存储?怎么将文件内容直接显示在网页上?

AIX 系统 EBS form 打开报错FRM-92101: FORM server在启动过程中失败

克隆或者安装好系统后,发现form打不开,报错截图: 根据oracle 官方文档:R12: "FRM-92101:There was a failure in the Forms Server during startup" Error When Attempting to Launch Forms [ID 454427.1] Oracle Applications Technology Stack - Version 12.0.4 to 12.2 [Release 12.0 to 1

FileUpload选择图片即时显示在一个Div中,求解答

问题描述 <tr><tdclass="t1">封面</td><tdclass="t2"style="height:150px;"><asp:ImageID="Image1"runat="server"/><asp:FileUploadID="fudIamge"runat="server"/><