diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 10 | ||||
-rw-r--r-- | doc/security.rdoc | 7 |
3 files changed, 17 insertions, 6 deletions
@@ -1,3 +1,9 @@ +Fri Jun 14 09:48:48 2013 Shugo Maeda <shugo@ruby-lang.org> + + * NEWS: add notes for $SAFE. + + * doc/security.rd: remove the description of $SAFE=4. + Fri Jun 14 00:14:29 2013 Tanaka Akira <akr@fsij.org> * bignum.c (bigdivrem): Zero test condition simplified. @@ -43,6 +43,10 @@ with all sufficient information, see the ChangeLog file. === Core classes compatibility issues (excluding feature bug fixes) +* Kernel#untrusted?, untrust, and trust + * These methods are deprecated and their behavior is same as tainted?, + taint, and untaint, respectively. If $VERBOSE is true, they show warnings. + * IO * incompatible changes: * open ignore internal encoding if external encoding is ASCII-8BIT. @@ -120,4 +124,10 @@ with all sufficient information, see the ChangeLog file. It gets encoding argument to convert before percent encode. UTF-16 strings aren't converted to UTF-8 before percent encode by default. +=== Built-in global variables compatibility issues + +* $SAFE + * $SAFE=4 is obsolete. If $SAFE is set to 4 or larger, an ArgumentError + is raised. + === C API updates diff --git a/doc/security.rdoc b/doc/security.rdoc index 2cf6531785..d552f9876c 100644 --- a/doc/security.rdoc +++ b/doc/security.rdoc @@ -21,12 +21,7 @@ Ruby provides a mechanism to restrict what operations can be performed by Ruby code in the form of the <code>$SAFE</code> variable. However, <code>$SAFE</code> does not provide a secure environment for executing -untrusted code even at its maximum level of +4+. <code>$SAFE</code> is -inherently flawed as a security mechanism, as it relies on every unsafe -operation performed by any C method to be guarded by a <code>$SAFE</code> -check. If this check is ever missed, the entire security of the system is -compromised. <code>$SAFE</code> also does not offer any protection against -denial of service attacks. +untrusted code. If you need to execute untrusted code, you should use an operating system level sandboxing mechanism. On Linux, ptrace or LXC can be used to sandbox |