Ah, ok. An inspector prevents a sandbox from getting the namespace of a
TR module that was created outside the sandbox (in the same way that it
prevents access to `ffi/unsafe` as defined outside the sandbox), but it
doesn't prevent access to the namespace of a module defined inside the
sandbox.

I don't immediately see the solution. I don't think making `eval`
always add `#%top-interaction` would not solve the problem, because
`#%top-interaction` could be redefined or gotten around by other
reflective operations.

At Mon, 18 Jul 2016 16:52:35 -0400, Leif Andersen wrote:
> Oh? Then should we disable it by default in Racket Sandboxes? (Since this
> could be used on say, pasterack:)
> 
> http://pasterack.org/pastes/16888
> 
> 
> ~Leif Andersen
> 
> On Mon, Jul 18, 2016 at 4:34 PM, Matthew Flatt <mfl...@cs.utah.edu> wrote:
> 
> > FWIW, `module->namespace` is privileged and guarded by an inspector in
> > the same way as `(require ffi/unsafe)`.
> >
> > At Mon, 18 Jul 2016 16:20:18 -0400, Sam Tobin-Hochstadt wrote:
> > > This is the same as this bug:
> > >
> > 
> http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&database=default&pr=1
> > > 4773
> > >
> > > I think that `eval` should automatically wrap things in the
> > > `#%top-interaction` of the relevant namespace, which would help in
> > > some cases, but in general, yes, the top-level is hopeless.
> > >
> > > Sam
> > >
> > > On Mon, Jul 18, 2016 at 4:14 PM, Leif Andersen <l...@leifandersen.net>
> > wrote:
> > > > #lang racket
> > > >
> > > > (require syntax/location)
> > > >
> > > > (module foo typed/racket
> > > >   (: f (-> Byte Integer))
> > > >   (define (f x)
> > > >     (+ x 1))
> > > >
> > > >   (set! f (λ ([x : Byte])
> > > >             (+ x 2)))
> > > >   (f 3))
> > > >
> > > > (require 'foo)
> > > > ((eval 'f (module->namespace (quote-module-path foo))) "world")
> > > >
> > > >
> > > > You're welcome. (Also came up with Alex and Milo)
> > > >
> > > > Does the top level make Typed Racket hopeless?
> > > >
> > > > ~Leif Andersen
> > > >
> > > > --
> > > > You received this message because you are subscribed to the Google
> > Groups
> > > > "Racket Users" group.
> > > > To unsubscribe from this group and stop receiving emails from it, send
> > an
> > > > email to racket-users+unsubscr...@googlegroups.com.
> > > > For more options, visit https://groups.google.com/d/optout.
> > >
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Racket Users" group.
> > > To unsubscribe from this group and stop receiving emails from it, send an
> > > email to racket-users+unsubscr...@googlegroups.com.
> > > For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Racket Users" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to racket-users+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/d/optout.
> >

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to