Le 26/02/2012 01:23, Geoffrey Sneddon a écrit : > On 13/02/12 17:55, Allen Wirfs-Brock wrote: >> Let's try to get this back to concrete issues that I can incorporate >> into a specification. >> >> The current draft is at >> http://wiki.ecmascript.org/lib/exe/fetch.php?id=strawman%3Amagic_proto_property&cache=cache&media=harmony:draft_proto_spec_rev2.pdf >> >> Gavin and Oliver seem to really want to use an accessor for >> Object.prototype.__proto__ > > On the whole this is my preference too, as it practically eliminates > special-casing for the __proto__ property, which on the whole I'm in > favour of. > > I've basically implemented something close to what is attributed to > Dave Herman on the wiki in Carakan now, albeit without the context > check, though I agree it's a good idea. I wonder if it's > web-compatible to disallow cross-context prototype chains (both > through __proto__ and Object.create). What is asked to be disallowed is only changing the prototype with __proto__ in a cross-context manner. Creating cross-context chains with Object.create has not been discussed I think and should be fine...
....or not? Given an attacker from context A, a defender from context D (I'll use these letters to refer to the global object of each context). An attacker can create an object like ----- var maliciousProto = Object.create(D.Object.prototype); // Add whatever own properties to maliciousProto someObjectInD.__proto__ = maliciousProto ----- I was enthusiastic by Gavin Object.prototype ownership-based solution, but it seems that as long as an attacker has the possibility to create cross-context objects, an Object.prototype-based solution actually does not prevent anything. > The one thing I would prefer, however, would be that the setter is > optional (i.e., it is permissible to have __proto__ have just a getter > or have both a getter and a setter, but not just a setter). I think that it's unrealistic since the web does use the setter as well. If the setter was standardized as optional, all implementations would implement it anyway. David _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

