は:オーバーライド後にWindow.alertを再度有効にすることはできますか?私はページのオーバーライドのwindow.alertボックスがある場合
Window.alert = function() {}
を私はJavascriptへのアクセス権を持っている場合、私は警告ボックスを再度有効にすることができますか?
は:オーバーライド後にWindow.alertを再度有効にすることはできますか?私はページのオーバーライドのwindow.alertボックスがある場合
Window.alert = function() {}
を私はJavascriptへのアクセス権を持っている場合、私は警告ボックスを再度有効にすることができますか?
元のアラート機能を別の場所に保存しておき、それを元に戻しておくと思います。私はちょうど、アラート機能を取得するために、新しいウィンドウを開くということを知りませんが、その関数はネイティブコードであるので、それを超える閉鎖されていたら、することはできません
var originalAlert = window.alert;
window.alert = function(stuff) {
console.log('alert invoked');
}
alert(); // displays a message in the console
var newWindow = window.open();
window.alert = newWindow.alert;
newWindow.close();
alert(); // alerts a message
このようなクレイジーなハックなしでそれを取り戻す。少なくとも私が知っていることではない。
ありがとうございます。オーバーライドが完了した後にコードの部分だけを制御するとどうなりますか? –
元のアラート機能にアクセスできないという意味ですか? –
正しいです、私はオーバーライドが起こった後にJavascriptを制御します。 –
種類です。空の隠れたiframeのウィンドウオブジェクトの警告メソッドを取得/参照することができます。しかし、それは解決策ではなく、ハックです。なぜあなたは正確にこれを必要としますか/これは何のために必要ですか? – Thomas
これは、開発者がそれが安全であると仮定した場合です。しかし、オーバーライドが実行された後にXSSがその部分を制御する場合、XSSがあると、攻撃者はWindow.alertを再アクティブ化できますか? –
disable: 'window.alert =(str)=> console.log(" alert: "、str);' 注入: 'blert = document.body.appendChild(document.createElement(" iframe "))。contentWindow .alert; ' test:' alert( "foo"); blert( "bar") ' – Thomas