Esistono molti modi per interagire con gli script di pagina, i più comuni dei quali sono trattati nella documentazione ufficiale, inclusi tutti i metodi elencati nella domanda.
Leggere "Interacting with page scripts".
Tuttavia, va sottolineato che l'interazione con gli script di pagina in modo sicuro può essere difficile. Essere particolarmente consapevoli del fatto che si chiama unsafeWindow
pericoloso per un motivo:
Prestare attenzione usando unsafeWindow: non si può contare su una qualsiasi delle sue proprietà o funzioni che sono, o fare, che cosa vi aspettate. Qualcuno di loro, persino setter e getter, avrebbe potuto essere ridefinito da uno script di pagina. Non usarlo a meno che non ti fidi della pagina, e anche in questo caso fai attenzione.
Inoltre, unsafeWindow non è un'API supportata, quindi potrebbe essere rimossa o modificata in una versione futura dell'SDK.
lettura di dati da o eseguire funzioni di unsafeWindow
è sicuro, nel senso che essa non può direttamente portare all'esecuzione di codice in un altro (lo script contenuto) contesto di sicurezza. I compartimenti del motore Javascript si assicureranno di ciò.
Ma è proprio vero che non devi mai fidarti dei dati provenienti da un sito web. Aspettatevi sempre il codice da lanciare, Denial-of-service con loop infiniti inattesi o simili. E mai in modo esplicito o implicito eval
codice uate nel contesto dello script di contenuto.
Inoltre, non pensare mai di poter effettivamente fidarsi di un sito Web, anche se è il tuo sito web. I siti Web possono essere compromessi (hackerati), i proprietari possono cambiare in futuro, i dati potrebbero essere modificati durante il percorso (attacchi Man-In-The-Middle attivi) o un altro componente aggiuntivo potrebbe averlo modificato, ecc.
è inteso come una risposta canonica a questi tipi di domande. – nmaier
Questa domanda è collegata dal wiki [tag: firefox-addon]. – nmaier
Ho spostato il collegamento nel [wiki dei tag firefox-addon-sdk] (https://stackoverflow.com/tags/firefox-addon-sdk/info), che è il luogo in cui appartiene IMHO. –