[#8136] Confused exception handling in Continuation Context — "Robert Dober" <robert.dober@...>

Hi all

13 messages 2006/07/06

[#8248] One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...>

I just posted this to ruby-talk. But I would also like to discuss this

33 messages 2006/07/18
[#8264] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

From my experience using both tool chains on Windows (for the ruby-prof

[#8266] Re: One-Click Installer: MinGW? or VC2005? — "Curt Hibbs" <ml.chibbs@...> 2006/07/19

Tim, I'm going to top reply since your post was so long. I'm interested in

[#8267] Re: One-Click Installer: MinGW? or VC2005? — Charlie Savage <cfis@...> 2006/07/19

> Tim, I'm going to top reply since your post was so long. I'm interested in

[#8271] my sandboxing extension!! — why the lucky stiff <ruby-core@...>

I have (what feels like) very exciting news. I finally sat down to code up my

17 messages 2006/07/19

[#8430] Re: doc patch: weakref. — "Berger, Daniel" <Daniel.Berger@...>

> -----Original Message-----

19 messages 2006/07/28
[#8434] Re: doc patch: weakref. — Yukihiro Matsumoto <matz@...> 2006/07/29

Hi,

[#8436] Re: doc patch: weakref. — Daniel Berger <djberg96@...> 2006/07/29

Yukihiro Matsumoto wrote:

[#8437] Re: doc patch: weakref. — Mauricio Fernandez <mfp@...> 2006/07/29

On Sat, Jul 29, 2006 at 07:37:24PM +0900, Daniel Berger wrote:

[#8441] Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...>

I have the following code:

18 messages 2006/07/30
[#8442] Re: Inconsistency in scoping during module_eval? — nobu@... 2006/07/30

Hi,

[#8443] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/30

Why does this:

[#8445] Re: Inconsistency in scoping during module_eval? — Yukihiro Matsumoto <matz@...> 2006/07/30

Hi,

[#8454] Re: Inconsistency in scoping during module_eval? — "Charles O Nutter" <headius@...> 2006/07/31

So to clarify...

Re: [YAY] my sandboxing extension!!

From: Mauricio Fernandez <mfp@...>
Date: 2006-07-19 11:00:15 UTC
List: ruby-core #8272
On Wed, Jul 19, 2006 at 06:40:34PM +0900, why the lucky stiff wrote:
> I have (what feels like) very exciting news.  I finally sat down to code up my
> sandboxing extension, based on what I've learned from Try Ruby.  This extension
> is written in C and is designed to open a blank symbol table, fill it with the
> basic boilerplate and eval a string within that environment.

Does that mean we'll soon see people opening their Try Ruby franchises? ;-)

> The extension contains a whitelist of methods and classes to move into the blank
> environment.  The code grabs the NODE for each method body and replants the
> CFUNC in the sandbox.  Allocators and singletons and all that get copied.
> 
> So how does it actually eval the code?  Well, it swaps out rb_class_tbl and all
> the rb_(m|c|e)\w+ variables just before eval.  Then, it rb_obj_instance_evals on
> an anonymous object (sandbox's `main`) inheriting from the new sandbox->cObject.
> I then rb_ensure and swap the normal vars back in.

So it doesn't support concurrent non-sandboxed Threads, right?

require './sand_table.so'
require 'timeout'

sbox = Sandbox.new
Timeout.timeout(1) do
  sbox.eval <<-EOF
    # 3v1l
    while true
    end
  EOF
end

hangs. To be fair, there are many ways to circumvent timeout, so the sandbox
would normally execute in a separate process (the way you do with Try Ruby
IIRC). 

This makes me think that the point of sandbox is not as much allowing access
to stuff you cannot use with higher $SAFE levels as offering a clean
environment. Am I right? In both cases, being able to specify which stuff is
to be imported could be useful.

Thank you,

-- 
Mauricio Fernandez  -   http://eigenclass.org   -  singular Ruby

In This Thread