[Cross Domain Scripting]IFrame內嵌其它網頁問題

  • 1047
  • 0

摘要:[Cross Domain Scripting]IFrame內嵌其它網頁問題

參考網頁:

(1)   http://blog.darkthread.net/post-2010-09-28-iframe-proxy.aspx

(2)   http://www.dotblogs.com.tw/joysdw12/archive/2013/08/20/asp-net-cross-domain-callback.aspx

(3)   http://hi.baidu.com/slandi/item/7c6aa80ae606b48f03ce1b1f

--//防破解

http://briian.com/1692/top-location.html

 

前提:今天遇到客戶要求開放部份功能給對方用Iframe方式嵌入到客戶端網頁上使用,一開始想的太過簡單;原本想說只要將該功能copy到固定資料夾再重寫部份功能並設定加密及身份驗證,再使用用iframe,並設定好src,一切就大功告成,但事情就像鐵獅玉玲瓏裡面最常出現的臺詞”絕對沒有憨人想的那麼簡單”一樣。遇到以下非常棘手的問題:

 

(A)   將系統架設到Server才發現以下問題

甲、Cross Domain(跨網域)問題

乙、存取權限問題(JavaScript及其他library或者asp componet)

(B)   Session存活問題

(C)   Include的JavaScript失效

 

問題錯誤描述: 沒有存取權限(Same-Origin Policy)

 

解決方法:

在Server端專案上開一個跳板,比如叫做Gate.aspx,這樣你要include的page就會跟Gate同網域。然後,在client端開一個page include iframe,然後src指向Gate,如此一來你對要include網頁的操作就會被視為同網域,(A)跟(C)的問題就解決了。這感覺就像你去鄰居家拿走他家的搖控器,如此一來你就可以看他家的電視是一樣的道理。但要小心一點的是,這種作法的驗證跟授權加密等真的要做的很嚴謹,要小心XSS問題發生,不然全家真的會變你家(冷笑話)。

 

P.S 如果你要做壞事的時候,是不是可以找一個內嵌式網頁,我想這種系統應該還不難找吧XD,然後在原始檔裡找到Gate,再嵌入到一個免費空間,是不是很像之前新聞裡常看到的”假提款機”詐騙手法?那如果沒有Gate可以嵌入目標程式呢?這邊我就不方便透露了XD。

 

最後補一句,以上的做法都是我做夢夢到的,我現在都忘了。