2015-03-13 27 views
1

我並沒有做太多的客戶端網頁編程,所以我試圖把握這個概念與我的具體情況有何聯繫。正確理解具有相同主機/不同端口和安全性的CORS

我有一個運行在50000s端口上的RESTful WCF服務。另外,我有一堆用HTML5/CSS3/JavaScript編寫的Web表單(不是ASP WebForms),它們可以對此WCF服務進行AJAX調用。 Web表單託管在同一主機上,但正在使用端口80.由Web表單所做的AJAX調用僅爲GET請求。

此外,我有一個第三方雲託管的應用程序位於完全不同的位置(不同的主機),它也需要調用WCF服務。此通信將執行POST s & PUT s到WCF服務。

很明顯,第三方託管的雲應用程序調用是跨源的。從我的研究看來,不同的港口實際上是不同的起源。

我知道,安全& CORS是不同的概念,但在這裏就是我試圖完成,我需要更好地瞭解這一切是如何工作的:
現在,我讓所有的跨域請求,一切正在工作,但我想限制它以提高安全性,然後最終使用傳輸安全性設置HTTPS,同時使用相同證書的兩個Web表單& WCF服務。第三方雲服務託管應用程序仍然需要能夠與WCF服務進行通信,因此我需要允許它進行不同的身份驗證,以便在使用祕鑰的情況下進行身份驗證,因爲一切都是服務器端只要。

這整個溝通「三角」對我來說都感覺很模糊,我希望SO是我發佈這個問題的正確地方,因爲它不直接與代碼相關。

  1. 上面描述的WCF - web表單情況是否被認爲是交叉來源?
  2. A)如果上述不是交叉原點,那麼我是否只需要在我的web.config中通過Access-Control-Allow-Origin: 'https://my-cloud-host'

    B)如果據我所知,只需要在頭中回顯允許的源頭。在這種情況下,我在IIS中爲Access-Control-Allow-Origin設置了什麼(如果有的話)?如果不允許,我會迴應什麼,只是原始來源?
  3. 我的想法是否使用相同的證書進行相互SSL身份驗證,如果它們託管在不同的端口上?這會阻止雲服務與WCF服務進行通信,還是讓第二個端點允許這樣做?
  4. 我迷失了方向嗎?我很困惑這件事。

回答

1
  1. 是的。在除IE以外的所有主流瀏覽器中,不同的端口被認爲是另一個起源。 A)是正確的。您只需要允許您的port-80來源發送請求。
  2. 我不確定這一點。我傾向於認爲SSL是端口識別的,並且不能在不同的端口上使用相同的證書。
  3. 您可以閱讀this excellent article讓您的頭腦休息一下。
相關問題