允許自訂指令碼的安全性考量
允許使用者藉由插入腳本來自定義 SharePoint 中的網站和頁面,可讓他們彈性地解決組織中的不同需求。 不過,您應該注意自定義腳本的安全性含意。
當您允許使用者執行自定義文本時,就無法再強制執行治理、設定插入程式代碼的範圍、封鎖程式代碼的特定部分,或封鎖所有已部署的自定義程式碼。 建議您不要允許自定義腳本,而是使用 SharePoint 架構。 如需詳細資訊,請 參閱自定義腳本的替代方案。
自定義腳本可以做什麼
在 SharePoint 頁面中執行的每個腳本 (它是文檔庫中的 HTML 頁面,還是腳本編輯器網頁元件中的 JavaScript) 一律會在造訪頁面和 SharePoint 應用程式的使用者內容中執行。 也就是說:
腳本可存取使用者可存取的所有專案。
腳本可以跨數個Microsoft 365 服務存取內容,甚至是透過 Microsoft Graph 整合。
您無法稽核文稿的插入
身為 SharePoint 系統管理員 或 更新版本,您可以允許或封鎖整個組織或特定網站集合的自定義腳本功能。 (如需如何執行此動作的資訊,請參閱 允許或防止自定義腳本。) 不過,一旦您允許腳本,您就無法識別:
已插入哪些程序代碼
插入程序代碼的位置
插入程式代碼的人員
任何具有「新增和自定義頁面」許可權的使用者, (任何頁面或文檔庫) 設計和完全控制許可權等級的一部分,都可以插入可能對組織中所有使用者和資源產生強大影響的程序代碼。
腳本不僅可以存取頁面或網站,還可以存取組織中所有網站集合和其他Microsoft 365 服務的內容。 執行腳本沒有界限。 如需您可以稽核的網站活動相關信息, 請參閱設定網站集合的稽核設定。
您無法封鎖或移除插入的文稿
如果您已允許自定義文稿,您可以將設定變更為稍後防止使用者新增自定義腳本,但您無法封鎖已插入的腳本執行。 如果插入危險或惡意的腳本,您唯一可以停止它的方式是刪除裝載它的頁面。 這可能會導致數據遺失。
自定義腳本的替代方案
SharePoint 架構是一種頁面和網頁元件模型,提供控管且完全支援的方式,讓您使用腳本技術來建置解決方案,並支援開放原始碼工具。 SharePoint 架構的主要功能:
架構會在目前使用者的內容中執行,並在瀏覽器中連線。
控件會轉譯在文件物件模型 (DOM) 一般頁面中。
控件可回應且可存取。
開發人員可以存取生命週期。 此外,它們也可以存取負載、串行化和還原串行化、組態變更等等。
您可以使用任何您喜歡的瀏覽器架構:React、Handlebars、儲存、Angular 等等。
此工具鏈是以常見的開放原始碼用戶端開發工具為基礎,例如 npm、TypeScript、Yeoman、webpack 和 gulp。
不論已使用的實例數目及其使用的頁面或網站數目為何,系統管理員都有可立即停用解決方案的治理工具。
解決方案可以部署在使用傳統體驗或新體驗的網頁元件和頁面中。
只有全域管理員、SharePoint 系統管理員,以及已獲授與管理應用程式網站許可權的人員,才能新增解決方案。 如需授與使用者管理應用程式網站許可權的相關信息,請 參閱要求應用程式安裝許可權。