跨域訪問種種

前言  

    首先要指出的是,這裏的跨域訪問,應該細分爲跨域頁面訪問跨域信息採集。現在具體來分析說明一下

 

跨域頁面訪問

原因

      這種方式主要出現在多個系統集成的情況下,主系統以iframe或frameset的方式將其他子系統的頁面嵌進來。由於安全原因瀏覽器會阻止iframe或frameset的cookie,由於SESSION需要以內存cookie的方式存儲id到客戶端,因此SESSION將一起失效。

PS:如果在嵌入頁面內部操作的話,不會有跨域問題,該問題僅在多處嵌入的情況下發生.

解決辦法

     在子系統的登錄代碼中加入P3P的認證,即允許第三方讀取cookie,這樣cookie值才能被瀏覽器正確的讀取並保存。代碼如下:

response.setHeader("P3P","CP=CAO PSA OUR"); 

跨域信息採集

原因

     這種方式主要出現在Web2.0利用AJAX採集跨域系統數據的時候,如採集氣象網站的天氣預報信息。出現的主要原因是使用AJAX方式跨域調用,同樣出於安全性考慮XMLHttpRequest是禁止跨域訪問的,否則你以爲採到的是一條文本信息,而實際是一條可執行JS木馬的話,你的網站可想而知。

解決辦法

  1. 利用script腳本訪問跨域url。該方法需要跨域系統代碼可控,輸出格式爲script腳本。客戶端可直接對腳本進行操作。
  2. 服務器代理模式。通過將請求發送至服務器,由服務器代理訪問跨域系統,再將輸出的內容返給客戶端。在Java中可使用apache的HttpClient。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章