On 9-Dec-04, at 12:09 AM, Gavin Lambert wrote:

That was fixed (in the patch, not necesarily on particular servers) fairly quickly though -- at least if you're talking about the same hole that I reported. It wouldn't have been much of a problem except that some of the core security code wasn't all that well-written :)

I believe Neil is referring to the fact that WAIFs act like MOO objects, but without many of the constraints one would expect of them.


On MOO Canada, we have offload a lot of responsibility to objects under the assumption that they will obey certain rules - a wizard owned property on a base object cannot be modified without going through code to do so, for example. We also employ the -o_verbs patch to make some verbs "final" (in Java-terminology) on base objects. Taken together, any object that is not bound by these constraints poses a major security problem.

To address these issues, we created special syntax for accessing waif properties and methods. A waif object has to be used with an arrow pointer, like 'x->property', or 'x->method()'. Any attempt to use a waif where an object was expected would raise E_TYPE. As a result, code had to be explicitly written to accept waif arguments, or else it was assumed to be insecure.

It was argued back and forth whether this removes a significant chunk of waif usefulness, but ultimately waifs were left as a useful tool for specific programming challenges - where you need to store state and have methods of manipulating it, but you don't need a physical object that needs to be interacted with by users. Since this is really the point of waifs, and this functionality was intact, everyone lived happily ever after.

--
 Mathieu Fenniak <[EMAIL PROTECTED]>
 http://stompstompstomp.com/


############################################################# This message is sent to you because you are subscribed to the mailing list <[EMAIL PROTECTED]>. To unsubscribe, E-mail to: <[EMAIL PROTECTED]> To switch to the DIGEST mode, E-mail to <[EMAIL PROTECTED]> To switch to the INDEX mode, E-mail to <[EMAIL PROTECTED]> Send administrative queries to <[EMAIL PROTECTED]>



Reply via email to