0
我已閱讀了如何在使用window.postMessage()
時避免安全問題 - 特別是MDN doc中的建議。關於window.postMessage()+ iframes +開發人員工具的安全問題
但是,由於所有預防性提示都是客戶端,我無法理解如何阻止不良操作者從簡單編輯更改其開發人員工具中的代碼。
這是我正在處理的情況。我有一個包含嵌入式iframe的頁面,並且我可以控制該iframe(它位於單獨的域上,但提供它的供應商允許我將自定義JavaScript放入iframe源)。父窗口和iframe將來回通信。
/**
window at https://firstgoodorigin.com
Receives message from iframe to indicate
its contents have loaded.
Once that message has been received,
send a message back to the iframe.
*/
function handleMessage(message) {
if (message.origin === 'https://secondgoodorigin.com') {
// verify and sanitize what's in message.data
// (it'll be something like "loaded")
// if it's good, send a message back
message.source.postMessage('foo', 'https://secondgoodorigin.com');
}
}
window.addEventListener('message', handleMessage, false);
/**
iframe at https://secondgoodorigin.com
Tell parent window it has loaded. Once that happens
it will receive a message from the parent window, for
which we add an event listener.
*/
window.addEventListener('load',() => {
window.parent.postMessage('loaded', https://firstgoodorigin.com);
});
window.addEventListener('message', (message) => {
if (message.origin === 'https://firstgoodorigin.com') {
// verify and sanitize what's in message.data
// do stuff
}
});
鑑於這兩個窗口源和iframe源將成爲別人的Web檢查內部編輯,什麼是從消除所有的驗證邏輯,並用惡意的東西取代它阻止他們?我在這裏錯過了什麼?
要破解自己?一旦文件被瀏覽器下載,他們就可以在計算機上隨心所欲地做任何事情。 – Will