On Dec 26, 2012, at 3:03 PM, David Bruant <[email protected]> wrote:

>> The initial value. We can look into what it would mean to make it 
>> modifiable, but we'd probably not make that the API; we'd probably just have 
>> a setter.
> Good point.
> [Adding MarkM into the mix for this part]
> I wish to point out a potential security/convenience issue regarding 
> inherited getter/setters. My point is broader than the 'global' loader 
> situation (it includes everything covered by WebIDL for instance), but let's 
> assume a 'global' setter is added to Loader.prototype and I'll draw the 
> general conclusion from this example.
> If I want to share a single loader instance to someone else, but not provide 
> access to the loader global, I have to delete Loader.prototype.global 
> (otherwise, someone can extract the getter and use the reference to the 
> loader instance to retrieve the global)

Heh, good luck with that. A loader is a very high privilege object. Just 
removing the getter is not going to help you, when you can easily write

    loader.eval("this")

For security, it's much better to treat a loader is a super-powerful object, 
and completely deny access to it to untrusted code. That's one of the reasons 
why there's no f.getLoader() or getCurrentLoader() API. The System object is a 
loader, but when you create a sandbox, you would typically censor or attenuate 
its power.

Dave

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to