2009-07-16 7 views
3

Je fais une analyse de Javascript et je veux garder javascript activé, mais désactiver toutes les zones alert() et les redirections self.location.Ecraser des méthodes natives en Javascript

Actuellement, j'utilise un proxy regex, mais cela semble être excessif.

Je peux passer outre certaines méthodes natives mais pas d'autres dans Firefox par exemple

window.alert = function('') { return null; } 
alert('test!') // works as expected 

Cependant lorsque je tente de remplacer de la même window.location = (ce qui est un alias pour l'appel de méthode window.assign()) il ne fonctionne pas

window.location.assign = function('') { return null; } 
window.location.assign('#') // redirects :(

J'ai essayé d'installer Window.prototype.location.assign mais je reçois une exception « Impossible de modifier les propriétés d'un WrappedNative ».

Toute alternative à NoScript pour un contrôle JS affiné, ou est-il possible d'écraser certaines méthodes JS natives?

+0

Pourquoi voudriez-vous pouvoir faire ceci? J'ai vu l'alerte et confirmé écrasé pour créer des boîtes de dialogue personnalisées, mais pourquoi remplacer l'emplacement? – Prestaul

+0

travailler avec un code malveillant –

Répondre

2

Ce suggested solution pour désactiver alert peut fonctionner.

+0

Je pense que http://www.adsafe.org/ est exactement ce que je cherchais, Merci! –

Questions connexes