SharePoint Iframe 報錯“此內容不能顯示在一個框架中”


問題描述

  我們SharePoint站點用Excel Service發布的Excel,需要Iframe到其他系統中,但是,Iframe的時候發現報錯“此內容不能顯示在一個框架中”。

  后來,嘗試在其他系統中Iframe SharePoint其他頁面,同樣報這樣的錯誤;但是SharePoint自己的頁面,Iframe自己頁面不報錯,Iframe自己的Excel Services 頁面報錯,很奇怪的問題。

問題截圖

clip_image001

問題介紹

  經過很長一段時間的搜索,發現是一種安全策略造成的,為了防止“ClickJacking attacks”,然后在查找了一下,這是什么意思,原來是“點擊劫持攻擊”,下面我們再看看什么是這個點擊劫持。

  點擊劫持定義 打開一個網頁,出現一個flash廣告框,你點擊“關閉”按鈕,可結果廣告並沒有關閉,卻變成了全屏,這樣的情況在計算機安全領域叫做點擊劫持,也就是說你點擊鼠標的行為被人給控制了。

  點擊劫持特征 點擊劫持是一種惡意攻擊技術,用於跟蹤網絡用戶,獲取其私密信息或者通過讓用戶點擊看似正常的網頁來遠程控制其電腦。很多瀏覽器和操作平台都有這樣的漏洞。

  點擊劫持作用 可以用嵌入代碼或者文本的形式出現,在用戶毫不知情的情況下完成攻擊,比如點擊一個表面顯示是“播放”某個視頻的按鈕,而實際上完成的操作卻是將用戶的社交網站個人信息改為“公開”狀態。

解決方案

  其實問題就是Http響應標頭是否有設置X-Frame-Options,我想SharePoint內部應該對這個進行限制了,造成了我們無法訪問,而IIS站點的位置,卻沒有表現出來,然后,試圖添加IIS站點的Http響應標頭,發現可以解決問題。

1、打開IIS,點擊HTTP響應標頭;

clip_image002

2、分組的空白區域右鍵添加,如下節點;

clip_image003

  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,效果圖下面。

clip_image004

結束語

  其實,很想吐槽一下,想了想,這個問題有讓自己多了解了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的解決方案~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM