鑒于前端代碼越來越大,Webpack 5 提供的微前端和模塊聯合的概念是一個可能的解決方案。但是,考慮到您正在集成來自其他團隊/第 3 方的代碼的可能性,外部代碼可能會嘗試通過簡單地訪問window
物件并遍歷其子物件來訪問它不打算訪問的資訊。
這不一定是密碼和信用卡等關鍵資訊,這些資訊通常使用iframe
. 用戶電子郵件或跟蹤資料等不太敏感的資訊可能會被收集和濫用。
在這種情況下,是否有任何不涉及iframes
限制腳本訪問范圍的技術設定?這在技術上可以在 WebAssembly 程式中實作嗎?
編輯:是的,保守的規則是不運行不受信任的代碼。然而,提出的問題是在技術上是否可以在不iframe
限制其對資訊的訪問的情況下對前端代碼進行沙箱處理。
uj5u.com熱心網友回復:
Javascript 本質上是“公開的”,因此在某些時候,您放入或取出的東西最終會通過網路獲取/XHR 或通過函式執行公開。
javascript 中有一個“私有”模式,它可以防止在物件內部進行窺探——您可以在其中明確定義公開的方法/屬性:
window.myThing = (function(){
var a = "a";
var private_b = "b";
function one(){
return "one"
}
function private_two(){
return private_b
}
return {
public_a : a,
public_one : one
}
}());
for(var prop in window.myThing){
console.log(prop, window.myThing[prop])
}
// ----------------------------------
// only the following properties
// are exposed from the window scope:
// ----------------------------------
// public_a as - a
// public_one as ? one()
理論上,這種型別的模式可以允許內部(非公開/不可遍歷)方法和屬性……并利用某種形式的加密來實作“進出”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338289.html
標籤:javascript 安全 前端 网络组装 微前端
下一篇:GIT-用另一個替換分支內容