2014-06-24 13 views
5

eklenti, benEklenti SDK içerik komut dosyasım bir web sitesi sayfası komut dosyasıyla nasıl etkileşimde bulunabilir? Benim SDK

  • çağrı
  • ihracat, (küme) yazma, okuma (get) bir sayfa komut bir fonksiyon gibi veya bir sayfanın bazı değişkeni veya özelliği manipüle ediyorum
  • numaralı bir sayfa komut dosyasına varolan bir işlevi yeni bir işleve vermek veya geçersiz kılmak veya sayfa komut dosyasının dinleyebileceği bir sayfaya özel bir olay göndermek.

nasıl Eklenti SDK İçerik komut bir web sitesi ile iletişim kurabilir?

+3

Bu veri (aktif Man-in the Middle saldırıları) yolda değiştirilebilir veya başka eklenti modifiye olabilirdi Bu tür sorulara kanonik bir cevap olarak ifade edilir. – nmaier

+1

Bu soru, [tag: firefox-addon] wiki kaynağından bağlanmıştır. – nmaier

+0

Bağlantıyı IMHO'ya ait olan [firefox-addon-sdk tag wiki] 'ye (https://stackoverflow.com/tags/firefox-addon-sdk/info) taşıdım. –

cevap

3

söz listelenen tüm yolları dahil resmi belgelerinde en yaygın olanı sayfa komut, etkileşim için pek çok yolu vardır.

"Interacting with page scripts" okuyunuz.

Ancak, güvenli bir şekilde sayfa komut ile etkileşim zor olabilir işaret edilmelidir. unsafeWindow bir nedeni güvensiz denir özellikle dikkat edin:

unsafeWindow kullanırken dikkatli olun: Eğer beklediğiniz özellikleri veya fonksiyonları olma veya kullanım konusunda herhangi güvenemez. Bunlardan herhangi biri, hatta setters ve getters, bir sayfa betiği ile yeniden tanımlanmış olabilir. Sayfasına güvenmediğiniz sürece kullanmayın, hatta o zaman dikkatli olun.

Ayrıca unsafeWindow desteklenen bir API olmadığını, bu nedenle kaldırılması veya SDK gelecekteki bir sürümde değiştirilebilir.

veri okuma veya unsafeWindow fonksiyonlarını yürütmek doğrudan başka (içerik script) güvenlik bağlamında kod çalıştırma gerektirebilecek olamayacağını anlamda güvenlidir. Javascript motor bölmeleri bundan emin olacaktır.

Ancak, bir web sitesinden gelen verilere asla güvenmemelisiniz. Her zaman kodun beklenmesini, Beklenmedik sonsuz döngüler veya benzerleri ile hizmet reddi beklersiniz. Ve asla içerik betiğinizin içeriğinde açıkça veya örtülü olarak eval kullanıcı kodu bulunmaz.

Ayrıca, bir web sitesine gerçekten güvenebileceğinizi asla düşünmeyin, hatta kendi web sitenizdir. Web siteleri sahipleri gelecekte değiştirebilir, (hack) tehlikeye girebilir, vb

+0

"GüvensizWindow" veya "eval" kullanmazdım. Genel olarak (ve Addon SDK'ya özgü değil), kısa kod için Location hack, kapsamlı bir enjeksiyon için Content Script Injection ve içerik betiklerini önlemek veya değiştirmek için 'beforescriptexecute'' kullandım. – erosman