Plugin architecture; was: [sldev] Avatar list ready for testing!

Jason Giglio gigstaggart at gmail.com
Wed Feb 21 16:48:57 PST 2007


Andrew Meadows wrote:
> The biggest disadvantage, as pointed out by one of the other LL developers,
> is that without some sort of encryption (SSH), unguessable URLs 
> (capabilities),
> or other security measures this would be a wide open hole for all sorts of
> exploits.  Even if the APR socket is on 127.0.0.1 javascript can trigger
> packets to localhost, so someone could set up a malicious website that 
> could
> take some control of any currently running SL client.

I don't see that as the biggest disadvantage.  XML is a hell of a lot of 
overhead for something that's local, that you control both ends of, and 
that is going to potentially be pushing data with high transaction rates 
and strict latency requirements.  That's a huge hit just to be buzzword 
compliant.

As for security, I don't see that as totally intractable.  There's 
already a level of trust required for plugins themselves, so the main 
concern is an exploit, like JS XMLHTTPRequest like you pointed out.

This assumes that we should accept new plugins on the fly, without 
restarting the client.  I'm not sure that's a reasonable design goal. 
If plugins were totally asynchronous like that, how would you start them 
when SL started?  Or should they sit there as little daemons or services 
whenever the system is booted, just waiting for SL to start?

Plugins only loaded when the client starts would prevent some random 
exploit from initiating a connection to the running server, since the 
client would know what connections it was expecting and from what plugins.

-Jason


More information about the SLDev mailing list