[#403837] Why none of the block giving the expected output with the "enumerator"? — Arup Rakshit <lists@...>

Why none of the block giving the expected output with the "enumerator"?

9 messages 2013/02/02

[#403870] Confusion with Enum#with_object block argument construct — Arup Rakshit <lists@...>

C:\>irb

9 messages 2013/02/03

[#403920] Character classes use in Ruby — Love U Ruby <lists@...>

Can anyone help me by giving an explanatory example of each of the

13 messages 2013/02/04

[#403935] How to stop page loading using selenium-web driver? — Love U Ruby <lists@...>

How to stop page loading using selenium-web driver?

11 messages 2013/02/04

[#403972] Ruby could recognize the values when putting into a webpage text filed. — Love U Ruby <lists@...>

SGksCgpJIGhhdmUgc29tZSB2YWx1ZXMgaW4gbXkgRXhjZWwgYXMgYmVsb3c6

9 messages 2013/02/05

[#403986] old syntax? what's going on here — tamouse mailing lists <tamouse.lists@...>

I have this in a _spec.rb file: (a gem I inherited at work)

11 messages 2013/02/05

[#404005] Implementing DRY with a function call — Rob Marshall <lists@...>

Hi,

12 messages 2013/02/05

[#404006] using an instance variable inside a method — FirstName Surname <lists@...>

Hello.

19 messages 2013/02/05

[#404021] Not able get the label text incurred with <input> element — Love U Ruby <lists@...>

I do have a below `HTML`:

18 messages 2013/02/05

[#404025] Symbol.defined? — Student Jr <lists@...>

Symbol deserialization from external sources is now known to be

15 messages 2013/02/06

[#404058] Ruby 1.9.3-p362 on Mac OSX — Peter Bailey <lists@...>

Hi,

13 messages 2013/02/06

[#404082] Problem building Ruby 1.9.3 patchlevel 385 under AIX 7.1 — Ruby Student <ruby.student@...>

Hello World!

10 messages 2013/02/06

[#404101] Issues from an extreme beginner — Bruce Palmer <lists@...>

Hey guys, great to be part of such a great community! I look forward to

19 messages 2013/02/07
[#404104] Re: Issues from an extreme beginner — Bruce Palmer <lists@...> 2013/02/07

Ahh, thank you Matthew! That was just the push I needed!

[#404208] elegant way to determine if something is defined — tamouse mailing lists <tamouse.lists@...>

Something like:

15 messages 2013/02/10

[#404218] Ruby Equivalent to VB's "With"? — Joel Pearson <lists@...>

I've looked around but I couldn't find anything helpful on this,

11 messages 2013/02/10

[#404235] The "ruby way" to do desktop applications? — "guirec c." <lists@...>

Hello,

17 messages 2013/02/11

[#404238] Best books for "advanced" programmers — "guirec c." <lists@...>

Hello,

18 messages 2013/02/11

[#404245] Issue with Excel column values read. — Love U Ruby <lists@...>

Hi,

22 messages 2013/02/11

[#404344] Ruby command line options s and S — Love U Ruby <lists@...>

Can anyone help me to understand the difference between s and S with

15 messages 2013/02/13

[#404386] Re: Ruby command line options s and S — "D. Deryl Downey" <me@...>

Dude!

20 messages 2013/02/14

[#404387] Ruby Multithreaded producer-consumer problem — Abhijit Sarkar <lists@...>

Hi,

26 messages 2013/02/14
[#404896] Re: Ruby Multithreaded producer-consumer problem — Abhijit Sarkar <lists@...> 2013/02/24

Bump!

[#404456] skip iteration in each loop — Saurav Chakraborty <lists@...>

I want to skip iteration for few values depending on dynamic condition.

11 messages 2013/02/15

[#404491] so, what's the proper way to replace funcionality of GOTO ? — "Stu P. D'naim" <lists@...>

I need to make few scripts for tasks I do often manually, but last time

27 messages 2013/02/15
[#404492] Re: [from BASIC to Ruby] so, what's the proper way to replace funcionality of GOTO ? — Love U Ruby <lists@...> 2013/02/15

Stu P. D'naim wrote in post #1097111:

[#404494] Re: [from BASIC to Ruby] so, what's the proper way to replace funcionality of GOTO ? — Ryan Victory <ryan@...> 2013/02/15

Love U Ruby: I'm really not sure what you meant by that response, but

[#404570] What is Ruby's default constructor? — Love U Ruby <lists@...>

Hi,

12 messages 2013/02/17

[#404632] Re: splat operator and Ruby instance variable assignments — Marc Heiler <lists@...>

Ok, understood what the guy wants ...

17 messages 2013/02/19
[#404640] Re: splat operator and Ruby instance variable assignments — Love U Ruby <lists@...> 2013/02/19

Marc Heiler wrote in post #1097736:

[#404645] Re: splat operator and Ruby instance variable assignments — Ryan Davis <ryand-ruby@...> 2013/02/19

[#404646] Re: splat operator and Ruby instance variable assignments — Love U Ruby <lists@...> 2013/02/19

Ryan Davis wrote in post #1097840:

[#404647] Re: splat operator and Ruby instance variable assignments — Peter Hickman <peterhickman386@...> 2013/02/19

On 19 February 2013 20:35, Love U Ruby <lists@ruby-forum.com> wrote:

[#404648] Re: splat operator and Ruby instance variable assignments — Love U Ruby <lists@...> 2013/02/19

Peter Hickman wrote in post #1097848:

[#404696] THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — "Xavier R." <lists@...>

Hi,

25 messages 2013/02/20
[#404699] Re: THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — Matt Mongeau <halogenandtoast@...> 2013/02/20

Maybe you could provide more detail about what you are confused about. To

[#404700] Re: THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — "Xavier R." <lists@...> 2013/02/20

Matt Mongeau wrote in post #1098058:

[#404705] Re: THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — Matt Mongeau <halogenandtoast@...> 2013/02/20

It's not really a paradox. Take for example

[#404738] backslash substitution — Mario Ruiz <lists@...>

don't know why... but this is not working

18 messages 2013/02/21

[#404809] Difference of 2 dates interms of years. — "Xavier R." <lists@...>

how can we get the experience years between two dates(ex:2012-01-11 to

13 messages 2013/02/22

[#404817] Not able to understand the difference between "||=" and "|=". — "Xavier R." <lists@...>

>> a = []

12 messages 2013/02/22

[#404839] range is not assigning to the splat variable. — Love U Ruby <lists@...>

Why splat variable couldn't take in the below two code the "range" ->

10 messages 2013/02/23

[#404842] Why class returning its own name when "include" statement? — Love U Ruby <lists@...>

I was actually playing around with the class definition return values.

16 messages 2013/02/23
[#404844] Re: Why class returning its own name when "include" statement? — Love U Ruby <lists@...> 2013/02/23

@Stefano Yes you are right. The below code is proved that.

[#404867] how to see the class creation time in Ruby? — Love U Ruby <lists@...>

In Ruby any chance to see the last-modified time of a specific class?

15 messages 2013/02/23

[#404901] Confusion with `nil` value being produced by IRB in case of Array#size manipulation. — Love U Ruby <lists@...>

enum[int] =3D obj =E2=86=92 obj

10 messages 2013/02/24

[#404921] How should I print only the last combination when using Array#combination(n) ? — Love U Ruby <lists@...>

>> a = [1,2,3]

15 messages 2013/02/24

[#405026] Please, help (GCD) greatest common divisor. — Caddy Tonks Lupin <lists@...>

Write a program to read two integers and show their greatest common

17 messages 2013/02/26

[#405059] Does this specific sound library exist? — Dirk Vogel <lists@...>

Hi there,

16 messages 2013/02/26

[#405067] Mac OS 10.8.2 and openssl — "Dr. Hegewald" <hegewald@...>

Hi everybody,

24 messages 2013/02/27

[#405079] Why `10` not returned without the `return` from the block ? — Love U Ruby <lists@...>

CODE - I

10 messages 2013/02/27

[#405107] Object track llist for a particular class. — "Xavier R." <lists@...>

Say I have created more than one instances from a particular class as

13 messages 2013/02/27

[#405145] Discussion on Ruby's `alias` — Tukai Patra <lists@...>

>> class Foo

27 messages 2013/02/28

[#405175] telnet - how to loop through commands listed in a file — Bob Ford <lists@...>

Let me first explain what I'm trying to do. I have written a very

18 messages 2013/02/28

Re: Why doesn't Ruby have a built in sandbox class?

From: Ano Hito <lists@...>
Date: 2013-02-11 06:14:25 UTC
List: ruby-talk #404223
Robert Klemme wrote in post #1096190:
> You make it sound as if people who use $SAFE would not know exactly
> how it works.
Not so much that they wouldn't know how it works, but that it may 
provide a false sense of security. Just look at this 
(http://blog.segment7.net/2006/08/30/reducing-safe) and this 
(http://www.h-online.com/open/news/item/Multiple-vulnerabilities-in-Ruby-safe-level-and-dl-tainting-736893.html). 
Safe levels work by blacklisting things you don't want to be available 
to untrusted code. The problem with this is the same problem with any 
type of blacklisting, it violates the principle of least privilege 
(http://en.wikipedia.org/wiki/Principle_of_least_privilege). While it 
may be nice to think you can be secure by not letting code have access 
to things that could be dangerous, it is practically impossible to 
predict what is or isn't dangerous in every given scenario. It's always 
a better idea to use an approach that allows untrusted code access to 
what it needs to function, and only what it needs to function. Safe 
levels don't do that.

> I am not a regular user of $SAFE and at the moment I have no idea what
> use cases you are referring to here.  Can you share some more detail,
> please?
Why himself actually listed several cases in the original README for his 
sandbox:

 * Start small interpreters which can periodically be dumped and 
restarted.
   (Long-running apps can self-upgrade!)

 * Load multiple different versions of a library.  Maybe you're 
converting
   an old version to a new version.

 * Run multiple Rails apps.  (Rails is a classic example of a crowded 
namespace
   where two apps' set of modules cannot coexist.)

I would additionally add to that the ability to run your code under a 
hypervisor for added security, even in cases where you trust the code 
you're running. And of course, that I believe sandboxes are in general, 
more secure than blacklisting.

> Did you mean #method_missing instead of #send?
I could be wrong about this, but I think send is the only method a ruby 
object is actually required to have. Otherwise you couldn't call on the 
object to do anything. You could use method_missing, but you'd still 
need to have a send method, because I'm pretty sure method_missing only 
gets called in the event that the send method fails.

> I think there are some issues with wrappers.  Assuming object X lives
> in object space A and was thrown into objectspace B.  Y and Z are
> other objects private to object space B.
>
> 1. A method call from Y to X which passes Z as argument would
> implicitly export Z to A.  For a sandbox it would not make sense to
> _implicitly_ export something to another box (object space).
Wouldn't it? I think that you have to keep in mind that most of what 
you're doing in a sandbox is interacting with the stuff already in the 
box. In cases where you allow outside stuff to go in, you should 
generally keep it restricted to objects that act as controlled 
interfaces between what's outside the box and what's inside the box. 
That being said in order to prevent massive unintentional leaks of 
objects into a box from occurring, it would probably be a good idea to 
make it so you could only access the methods of an object exported to a 
box if it's class had also already been exported.

> 2. How far in the object graph starting at Z do you want to go with
> wrapper creation?  It's not that you only export Z to A but also a
> whole lot other objects.  This is not only a security issue (item 1)
> but also a performance issue because you would need a recursive wrap
> of all objects.
If you're referring to doing something like wrapping all the objects 
referenced to by the instance variable of objects being wrapped, you 
wouldn't do that. All method calls to the object would switch the object 
space of the current thread to the object's native space, in which all 
of it's references would already be valid. Granted the context switching 
would be a drag on performance, but you wouldn't be doing it that much, 
because your general goal is to limit the interaction of things in the 
box with things outside of it.

> 3. How do you ensure objects stay inside their boxes if you
> automatically create wrappers for method arguments?  It seems the
> situation is not that different as with a single global object space.
While you don't necessarily keep objects in only a single space by doing 
this, at the least you maintain control over what they can access. Any 
reference to a foreign object, be it in the original object space or the 
one you're using for a sandbox, is always going to be wrapped. It's 
methods will always execute inside of it's native object space. Even 
when an object leaves the box, it never truly leaves the box.

> The situation would be easier if you allowed for object graphs
> starting at method arguments only objects which are known to the
> target object space, i.e. disallow implicit migration.  I am not so
> sure though whether that solution is so far away from $SAFE - or
> creating separate processes which communicate via DRb.
I'm not quite sure how what you're saying would work. Could you 
elaborate a bit?

> I believe your suggestion certainly needs more thinking.  Before we
> talk about implementations we should clarify requirements - even more
> so as this is a security topic.
It couldn't hurt. I mean, if someone does seriously consider 
implementing sandboxing as a native feature of ruby, the last thing I'd 
want is for it to turn into a security disaster that gets scrapped 
before it ever hits a stable release. I will however say that sandboxing 
is a tried an true approach to securely executing code. My version of 
sandboxing is slightly different from the typical because I was trying 
to think of something that would be more in line with the way ruby 
already works, and not something that would require dozens of hacks to 
implement. If any ruby devs want to jump in here and tell me all the 
reasons a more traditional sandbox would be a million times easier to 
implement, I'm all ears.

> I am pretty sure it's too late to include such a fundamental
> architectural change into Ruby 2.0.  That sounds more like a Ruby 3.0
> thing.
Is ruby 2.0 getting close to release then? I honestly haven't been 
following ruby's development closely enough to keep up on these things, 
but I was assuming 2.0 was still at least a year away. Well, while 
implementing native sandboxing may require some architectural 
reshuffling, it wouldn't require any changes to the ruby environment 
itself that wouldn't be more or less backward compatible with all 
existing code. The only thing I could think of is if you'd written code 
that specifically depended on ObjectSpace not having a new method, but 
I'm not sure that would come up very often. Maybe someone could still 
sneak sandboxes into 2.0, you never know.

>PS: I forgot one thing: thank you for starting that interesting
>discussion!
My pleasure. ;) I've been a long time user of ruby for my personal 
scripting needs, but I've never really done much as far as contributing 
to the greater ruby scene. Well, there's this 
(https://github.com/An0Hit0/Ruby-ISO-9660), which is useful, despite 
being unfinished. Anyway, I'd like to contribute a bit more, but after 
looking at the ruby source code, it became apparent it would take more 
time than I have to familiarize myself with the code enough that I could 
even approach the issue of implementing sandboxes, let alone actually 
doing it.

-- 
Posted via http://www.ruby-forum.com/.

In This Thread