1. 程式人生 > >.Net 站點跨域問題及解決方法

.Net 站點跨域問題及解決方法

1、什麼是站點跨域

瞭解跨域之前, 先了解下什麼同源策略?
百度百科:
同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說Web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。
同源:同一個協議, 同一個主機, 同一個埠 即同一個站點, 比如說IIS伺服器, 一個站點只能繫結一個埠

那為什麼需要同源策略的支援呢?
因為假設你已經登陸一個站點, 伺服器已經將一些敏感資訊返回到了客戶端, 如果此時你的站點程式碼中有一段訪問其他站點的程式碼, 這段程式碼又是獲取使用者的銘感資訊, 又比如說使用者在訪問銀行網站,並且沒有登出。然後他又去了任意的其他網站,
剛好這個網站有惡意的js程式碼,在後臺請求銀行網站的資訊。因為使用者目前仍然是銀行站點的登陸狀態,那麼惡意程式碼就可以在銀行站點做任意事情。例如,獲取你的最近交易記錄,建立一個新的交易等等。那是相當不安全的.
所以同源策略是相當重要的.即如果訪問了一個站點, 那麼使用者在訪問這個站點的所有內容必須是這個站點的內容, 不允許訪問其他站點的內容.


2、為什麼要規避跨域
先說說為什麼要規避跨域?
假設有一個應用叢集,我們建設了一個使用者中心,該使用者中心提供一些使用者驗證的功能,如登陸校驗、許可權等功能.那必須的,這個使用者中心是以站點的形式存在,而應用叢集中所有的應用必須能訪問該使用者中心站點,來校驗使用者的可用性,
但是使用者中心站點對於應用叢集中所有的應用來說都屬於外部應用,所以違反了同源策略,但是這個功能必須要實現.所以這種情況下,必須採用技術手段來規避同源策略.


3、解決方案
(1)、Jsonp技術