Сообщение от dmitriymar
|
ну и если так -ничего не помешает запустить вредоносный через таймаут
|
Так нет, меня как раз волнует, что можно изменить нативные методы перед выполнением страницы.
Сообщение от DjDiablo
|
Думаю отличить нативную функция от скиптовой труда не составит.
|
Наивный:
var replaceNativeFunction = new function (){
var functionList = [],
originalList = [];
function replaceNativeFunction( object, methodName, newMethod ){
functionList.push( newMethod );
originalList.push( object[ methodName ] );
object[ methodName ] = newMethod;
};
replaceNativeFunction.getOriginal = function ( method ){
var index = functionList.indexOf( method );
return originalList[ index ];
};
replaceNativeFunction( Function.prototype, "toString", function ToString(){
if( this.toString == ToString )
return replaceNativeFunction.getOriginal( ToString ).call( replaceNativeFunction.getOriginal( this ) );
return this.toString();
} );
return replaceNativeFunction;
};
replaceNativeFunction( window, "alert", function newAlert( message ){
var originalAlert = replaceNativeFunction.getOriginal( newAlert );
originalAlert( message );
originalAlert( "Trololo!!!" );
} );
alert( alert.toString() );