One option is to exit(128) in a middleware or something. However, you're in
a much bigger pickle than you think. If the user can run arbitrary code,
what's stopping them from eval("FileUtils.rm_rm('/')")
-- YehudaOn Wed, Jan 28, 2009 at 11:29 AM, Rich Morin <[email protected]> wrote: > > As I understand it, Merb has a master process which spawns off > some number of worker processes, respawning whenever a worker > dies. I'm assuming that the master loads in (or at least could > load in :-) all of the code that a worker will need, then does > a fork. So, this should be a fast operation. (Please let me > know if I'm mistaken on this!) > > > I'd like to use this respawning behavior to ensure that no > request can affect the behavior of a following request (eg, by > defining a method). > > Specifically, I'd like to have the worker process exit as soon > as the response has been sent to the client. This should cause > the master process to spawn a (fresh) replacement worker. Is > there an API-friendly way to make this happen? If not, could I > have a pointer to the relevant code? > > -r > > > P.S. This is an odd request, so I'll explain a little. In my > app, untrusted code is being evaluated via Erubis. I've been > able to confirm that code running in one request can define a > method that a following request can use. I want to prevent > this behavior; making the worker exit seems like a plausible > way to do so... > -- > http://www.cfcl.com/rdm Rich Morin > http://www.cfcl.com/rdm/resume [email protected] > http://www.cfcl.com/rdm/weblog +1 650-873-7841 > > Technical editing and writing, programming, and web development > > > > -- Yehuda Katz Developer | Engine Yard (ph) 718.877.1325 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "merb" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/merb?hl=en -~----------~----~----~----~------~----~------~--~---
