Ich habe gelesen, wie Sie Sicherheitsprobleme bei der Verwendung von window.postMessage()
- vor allem die Vorschläge in diesem MDN doc.Sicherheitsbedenken mit window.postMessage() + iframes + Entwickler-Tools
Aber alle präventiven Tipps sind alle Client-Seite, ich habe Probleme zu verstehen, wie sie böse Schauspieler von der Bearbeitung einfach den Code in ihren Entwickler-Tools ändern würde.
Hier ist die Situation, mit der ich es zu tun habe. Ich habe eine Seite, die einen eingebetteten iframe enthält, und ich habe die Kontrolle über diesen iframe (er lebt in einer separaten Domäne, aber der Anbieter, der ihn bereitstellt, erlaubt mir, benutzerdefiniertes JavaScript in die iframe-Quelle zu legen). Das Elternfenster und der Iframe kommunizieren vor und zurück.
/**
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
}
});
Da sowohl die Fenster Quelle und iframe Quelle werden in jemandes Web-Inspektoren bearbeitet werden, was sie daran zu hindern, alle Validierungslogik zu entfernen und durch etwas böswillig zu ersetzen? Was fehlt mir hier?
Um sich zu hacken? Sobald die Dateien vom Browser heruntergeladen wurden, können sie mit ihnen auf ihrem Computer machen, was sie wollen. – Will