summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--NEWS10
-rw-r--r--doc/security.rdoc7
3 files changed, 17 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index fa0c3769ed..c096c35ff3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index 72662cff59..0a7473870a 100644
--- a/NEWS
+++ b/NEWS
@@ -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