使用者入門 與 ASP.NET Web Forms
Web Form 模型,以及如何建立頁面和使用控件。
為什麼我的網頁中的外部資源在 Web Live Preview 中遭到封鎖?
如果您有來自您頁面中第三方網域的任何外部資源,您可能會注意到 Web Live Preview 中的設計工具已防止它們載入,並顯示此快顯通知:
您可能想知道為何資源已封鎖在設計工具中載入,以及快顯通知顯示的原因。 本文說明為何已封鎖資源。
Web Live Preview 和 BrowserLink 概觀
Web Live Preview (WLP) 是建置在 BrowserLink 之上的 Visual Studio 擴充功能。 WLP 使用 BrowserLink 來提供 Visual Studio 與設計工具之間雙向通訊的通道。 此雙向通訊可讓 WLP 提供許多功能:
- 同步處理設計工具中的內容和目前選取的節點與編輯器的內容。
- 將從設計工具建立的新內容推送至編輯器。
- 執行動作面板命令。
Web Live Preview 和 BrowserLink 的潛在安全性弱點
如果您將任何腳本或資源從第三方插入網頁中,這可以使用WLP和 BrowserLink 將您公開至潛在的安全性弱點,讓跨網站腳本 (XSS) 攻擊。
如果第三方資源可以將惡意代碼插入網站中,程式代碼可以使用插入設計工具的 Browser Link 腳本來回呼 Visual Studio。 插入的腳本可讓程序代碼在 Visual Studio 中開啟的檔案中撰寫任意內容,或開啟其他攻擊媒介。
目前,沒有任何好方法可防止攻擊者透過 BrowserLink 腳本來通訊回到 Visual Studio。
安全性弱點風險降低
我們盡可能限制並減輕透過 BrowserLink 腳本回 Visual Studio 通訊的安全性弱點。 不過,某些攻擊仍然可以透過 XSS 攻擊進行。
為了降低這類 XSS 攻擊的可能性,根據預設,WLP 會封鎖所有外部資源無法載入。 如果有任何外部資源遭到封鎖,WLP 會在設計工具右上角顯示下列快顯通知:
(在此範例中,我們使用下列 SVG,這是範例 Web 應用程式中使用的外部資源: https://visualstudio.microsoft.com/wp-content/uploads/2021/10/Product-Icon.svg)
如果 開啟 Microsoft Edge DevTools 視窗,您可能也會注意到下列訊息,說明外部資源載入的原因:
在設計工具的快顯通知中,如果您選取 [按兩下這裡 ] 連結,就會顯示下列對話方塊,其中已封鎖資源的網域會自動新增至對話框清單:
任何來自儲存在對話框清單中的外部網域的資源,在WLP 中預設都不會遭到封鎖,而且會如往常一樣載入。 按兩下 [確定] 之後,設計工具會重載頁面,並載入任何先前封鎖的資源,其網域已新增至對話框。 請確定您只允許已驗證為可信任且安全的外部網域。
按兩下快顯通知中的 [Web Live Preview - 外部網域 ] 連結會顯示相同的對話方塊,但不會將封鎖資源的任何網域新增至對話框中:
您也可以透過 Tools -> Options -> Web Live Preview -> Allowed external domains during design
設定存取對話框。 對話框設定是每個已安裝的Visual Studio實例。
警告
根據預設,不允許封鎖網域,可能會將您公開至上述的 XSS 攻擊。 同樣地,我們強烈建議只允許您可以驗證為可信任且安全的外部網域。