lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


At 17:15 28/01/2004, you wrote:
Almost all of the code is written purely in terms of the standard library
(one or two routines use standard Unix command-line utilities via
os.execute).
os.execute and io.popen are scary functions.  When using them, you have to 
be very certain about the contents of the strings being passed in. I'm 
going to
Whilst on that topic (or not), I thought I'd just mention what we've done here.

We've modified the standard functions so that 'os.execute', 'os.popen' and some other things (eg os.open etc) are classed as 'sensitive' functions.
A lua script can call a function 'io.enablesecurity("password")' which will 
disable all these functions, until 'io.disablesecurity("password")' is called.
This is because, if we make lua scripting available to users, we want to be 
able to turn off these functions, so we can call our own script first which 
sets security and then calls the user script.
I actually think this would be quite a nice feature in the 'normal' lua 
release as it doesn't affect anything unless you use the 
'io.enablesecurity' function to disable the functions, but it gives you 
that flexibility. The extra security checking does slow things down a bit 
(obviously), but since it's only on os type functions, they're pretty slow 
anyway ;-)

Paul				VPOP3 - Internet Email Server/Gateway
support@pscs.co.uk			http://www.pscs.co.uk/