2016-03-08 36 views
1

我有一個安全(HTTPS)web應用程序,需要從不安全(HTTP)來源(客戶自己的網站)加載自定義樣式表。這是由現代瀏覽器,但我需要一個解決方法,因爲:HTTPS站點:通過HTTP加載外部CSS

1)我不能要求我的客戶託管他們的自定義樣式表在HTTPS。他們沒有技術訣竅,他們中的一些人有關於可以託管哪些主機和區域內容的政策(具有諷刺意味的是,不涉及HTTPS)。 2)我顯然不能要求最終用戶在瀏覽器中禁用安全功能。我嘗試使用加載樣式表,我試圖用src =「about:blank」創建一個iframe,然後從那裏加載樣式表,我嘗試了XHR並獲取(但是需要在遠程啓用CORS主機,我不能合理預期)。

創建一個安全的代理服務器可以在網上提供任何樣式表,還有什麼其他解決方法我在這裏丟失嗎?

任何巫術讓我的網頁通過HTTP加載跨源樣式表?

回答

1

如果有解決方法可以加載安全頁面上的不安全資源,則應儘快修補它。不,該政策存在,因爲如果沒有HTTPS上的資源,您並不是真正的安全。任何HTTP連接都可能被攔截,並且中間人,所以頁面不安全。即使像樣式表那樣小的東西也會破壞安全性。

必須通過HTTPS提供樣式表,並且如果您的客戶不能這樣做,您將不得不爲他們做。

+0

「如果有解決方法能夠加載安全頁面上的不安全資源,它應儘快修補」 這很有道理。但是,我們可以*顯式*使用XHR加載不安全的資源,即使跨域。該策略存在(如果我理解正確),以防止*無意中通過使用可能成爲MITM受害者的樣式表/腳本標記加載不安全資源。這是一個很好的政策。我已經看到了ISP將JS注入頁面以顯示廣告的情況。但是策略應該設置安全的默認值,但是允許開發者在特殊情況下覆蓋事物。這是我的意思關於解決方法。 – sstur

0

是否可以下載他們的CSS服務器端,並通過HTTPS將其提供給您自己的用戶?

0

我試圖用我建立的webapp做同樣的事情。你想做什麼的真正問題是瀏覽器。它不允許安全連接被不安全的連接所破壞,特別是當你想在該頁面上注入某些東西時。我用這個技術:

document.createElement("link") 

要注射。而瀏覽器的安全性是一個大問題,我不認爲你會發現一個黑客.. 祝你好運! :)

相關問題