# $B%;%-%e%j%F%#%b%G%k$N%I%-%e%a%s%H(B

**URL:** <https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286>\
**Category:** Development\
**Created:** [July 18, 2009, 6:07pm UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286 "2009-07-18T18:07:49Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shugo\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Shugo\_M](https://www.ruby-forum.com/u/Shugo_M)\
**Post date:** [July 18, 2009, 6:07pm UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286/1 "2009-07-18T18:07:49Z")

</div>

e$BA0ED$G$9!#e(B

e$BEDCf$5$s$K2q$&$?$S$K=q$1$H8@$o$l$k$N$G!“e(B$SAFEe$B$^$o$j$N%I%-%e%a%s%H$NC!$-Bf$re(B  
e$B:n$C$F$_$^$7$?!#e(B  
e$B6X;_$5$l$kA`:n$N0lMw$O%j%U%!%l%s%9%^%K%e%”%k$+$i\<h$C$FMh$^$7$?$N$G!"\<BAu$H$Oe(B  
e$BP\*N%$,$"$k$+$b$7$l$^$;$s!#e(B  
e$B$H$j$"$($:$O!"C!$-Bf$H$$$&$3$H$G!D!#e(B

= Rubye$B%;%-%e%j%F%#%b%G%ke(B

Rubye$B$N%;%-%e%j%F%#%b%G%k$O!"0J2\<$Ne(B2e$B$D$N0[$J$kL\E\*$N$?$a$KDs6!$5$l$F$$$k!#e(B

: e$B30It$N;q8;$NJ]8ne(B

```
e$B%W%m%0%i%`30It$+$i$NF~NO%G!<%?$K$h$C$F!"%W%m%0%i%`30It$N;q8;$KBP$9e(B
e$B$k!"%W%m%0%i%^$N0U?^$KH?$7$?A`:n$,9T$o$l$k$3$H$rKI$0$?$a!#$?$H$($P!"e(B
Webe$B%"%W%j%1!<%7%g%s$KBP$7$FIT@5$J%/%(%jJ8;zNs$,M?$($i$l$?>l9g$K!"$=e(B
e$B$NJ8;zNs$r85$K%U%!%$%kA`:n$d30It%3%^%s%I$N<B9T$J$I$NA`:n$,9T$o$l$ke(B
e$B$h$&$J4m81@-$+$i!"%W%m%0%i%`30It$N;q8;$rJ]8n$9$k$3$H$rA[Dj$7$F$$$k!#e(B

```

: e$B?.Mj$5$l$F$$$J$$%3!\<%I$N\<B9Te(B

```
e$B?.Mj$5$l$F$$$J$$%3!<%I$r!"B>$N%G!<%?$+$i3VN%$5$l$?4D6-e(B(e$B%5%s%I%\%C%/e(B
e$B%9e(B)e$BFb$G0BA4$K<B9T$9$k$?$a!#e(B
e$B$?$@$7!"8=:_$Ne(BRubye$B$N<BAu$G$O!"$3$N5!G=$O40A4$G$O$J$$!#>\:Y$K$D$$$Fe(B
e$B$O!V%;!<%U%l%Y%ke(B4e$B$NLdBjE@!W$r;2>H!#e(B

```

== e$B%\*%V%8%’%/%H$N%U%i%0e(B

Rubye$B$N%\*%V%8%’%/%H$O!"e(Btaintede$B$He(Buntrustede$B$H8F$P$l$ke(B2e$B$D$N%U%i%0$r;}$D!#e(B

=== tainted

taintede$B$O!"%_%V%8%’%/%H$,1x@w$5$l$F$$$k$H$$$&\>uBV$rI=$9%U%i%0$G$"$j!"30e(B  
e$BIt$N;q8;$NJ]8n$N$?$a$KMxMQ$5$l$k!#e(Btaintede$B%U%i%0$,@\_Dj$5$l$?%_%V%8%’%/%He(B  
e$B$r!V1x@w$5$l$?%_%V%8%’%/%H!W!"@\_Dj$5$l$F$$$J$$%_%V%8%’%/%H$r!V1x@w$5$le(B  
e$B$F$$$J$$!W$H8F$V!#e(B

e$B$3$N%U%i%0$O0J2\<$N$h$&$J\>l9g$K@\_Dj$5$l$k!#e(B

- 

e$B%\*%V%8%’%/%H$,!"30It$+$i$NF~NOe(B(IOe$B!&%3%^%s%I%i%$%s0z?t!&4D6-JQ?t$J$Ie(B)  
e$B$r85$K@8@.$5$l$?\>l9g!#4D6-JQ?te(BPATHe$B$@$1$ONc30$G!"CM$K4m81$J%Q%9$r4^$`e(B  
e$B\>l9g$N$_1x@w$5$l$k!#$3$3$G$O4m81$J%Q%9$H$OC/$G$bJQ99!&=q$-9~$_$,2DG=e(B  
e$B$J%Q%9$r$$$&!#%k!\<%H%G%#%l%/%H%j$+$i3,AX$,=gHV$K%A%’%C%/$5$l!“0l2U=je(B  
e$B$G$bC/$G$bJQ992DG=$J8D=j$,$”$l$P$=$N%Q%9$O4m81$H$\_$J$5$l$k!#e(B

- e$B%\*%V%8%’%/%H$,!"%;!\<%U%l%Y%ke(B3e$B0J\>e$G@8@.$5$l$?\>l9g!#e(B
- e$B%_%V%8%’%/%H$,!"B\>$N1x@w$5$l$?%_%V%8%’%/%H$r85$K@8@.$5$l$?\>l9g!#e(B
- Object#tainte$B%a%=%C%I$K$h$C$FL@\<(E\*$K@\_Dj$5$l$?\>l9g!#e(B

e$B$^$?!"e(BObject#untainte$B%a%=%C%I$K$h$C$F%U%i%0$r=|5n$9$k$3$H$,$G$-$k!#e(B

taintede$B%U%i%0$,@\_Dj$5$l$F$$$k$+$I$&$+$O!“e(BObject#tainted?e$B%a%=%C%I$K$h$Ce(B  
e$B$F8!::$9$k$3$H$,$G$-$k!#e(BObject#tainted?e$B$O!”%U%i%0$,@\_Dj$5$l$F$$$k\>l9g$Ke(B  
truee$B$r!"@\_Dj$5$l$F$$$J$$\>l9g$Ke(Bfalsee$B$rJV$9!#e(B

=== untrusted

untrustede$B$O!"%_%V%8%’%/%H$,?.Mj$5$l$F$$$J$$%3!\<%I$K$h$C$F@8@.$5$l$?$H$$$&\>ue(B  
e$BBV$rI=$9%U%i%0$G$"$j!"?.Mj$5$l$F$$$J$$%3!\<%I$r%5%s%I%%C%/%9Fb$G0BA4$K\<B9Te(B  
e$B$9$k$?$a$KMxMQ$5$l$k!#e(Buntrustede$B%U%i%0$,@\_Dj$5$l$?%_%V%8%’%/%H$r!V?.Mj$5e(B  
e$B$l$F$$$J$$%_%V%8%’%/%H!W!"@\_Dj$5$l$F$$$J$$%_%V%8%’%/%H$r!V?.Mj$5$l$?%\*e(B  
e$B%V%8%’%/%H!W$H8F$V!#e(B

e$B$3$N%U%i%0$O0J2\<$N$h$&$J\>l9g$K@\_Dj$5$l$k!#e(B

- e$B%\*%V%8%’%/%H$,!"%;!\<%U%l%Y%ke(B3e$B0J\>e$G@8@.$5$l$?\>l9ge(B
- 

e$B%_%V%8%’%/%H$,!"B\>$N?.Mj$5$l$F$$$J$$%_%V%8%’%/%H$r85$K@8@.$5$l$?\>l9ge(B

- Object#untruste$B%a%=%C%I$K$h$C$FL@\<(E\*$K%U%i%0$r@\_Dj$5$l$?\>l9ge(B

e$B$^$?!"e(BObject#truste$B%a%=%C%I$K$h$C$F%U%i%0$r=|5n$9$k$3$H$,$G$-$k!#e(B

untrustede$B%U%i%0$,@\_Dj$5$l$F$$$k$+$I$&$+$O!“e(BObject#untrusted?e$B%a%=%C%I$Ke(B  
e$B$h$C$F8!::$9$k$3$H$,$G$-$k!#e(BObject#untrusted?e$B$O!”%U%i%0$,@\_Dj$5$l$F$$$ke(B  
e$B\>l9g$Ke(Btruee$B$r!"@\_Dj$5$l$F$$$J$$\>l9g$Ke(Bfalsee$B$rJV$9!#e(B

== e$B%;!\<%U%l%Y%ke(B

Rubye$B$N%;%-%e%j%F%#%A%’%C%/5!G=$O!"%;!\<%U%l%Y%k$K$h$C$F@)8f$5$l$k!#%;!\<e(B  
e$B%U%l%Y%k$O%9%l%C%I%m!\<%+%kJQ?te(B$SAFEe$B$G@\_Dj$9$k!#%9%l%C%I$,:n@.$5$l$?\>l9ge(B  
e$B$O!"?F%9%l%C%I$Ne(B$SAFEe$B$NCM$r0z$-7Q$0!#e(B

e$B%G%U%)%k%H$G$O!"%;!\<%U%l%Y%k$Oe(B0e$B$G$"$k!#%;!\<%U%l%Y%k$O!"e(BRubye$B$N5/F0%\*%W%7%ge(B  
e$B%se(B-Te$B$G@\_Dj$9$k$3$H$,$G$-$k!#e(B

$SAFE e$B$NCM$r8=:\_$NCM$h$j\>.$5$/JQ99$9$k;v$O$G$-$J$$!#e(B

$ ruby -e ‘$SAFE = 1; $SAFE = 0’  
-e:1:in `’: tried to downgrade safe level from 1 to 0  
(SecurityError)

Proce$B%_%V%8%’%/%H$N%V%m%C%/Fb$Ge(B$SAFEe$B$NCM$,@\_Dj$5$l$?\>l9g$O!"e(BProce$B%_%V%8%'e(B  
e$B%/%H$N\<B9T=\*N;8e$Ke(B$SAFEe$B$NCM$O\<B9TA0$N\>uBV$KLa$5$l$k!#e(B

$ ruby -e ‘lambda { $SAFE = 1 }.call; p $SAFE’  
0

e$B3F%;!\<%U%l%Y%k$G$O!"0J2\<$N$h$&$J%A%’%C%/$,9T$o$l!"6X;\_$5$l$?A`:n$,\<B9Te(B  
e$B$5$l$?\>l9g$K$Oe(BSecurityErrore$BNc30$,H/@8$9$k!#e(B

=== e$B%l%Y%ke(B0

e$B%G%U%)%k%H$N%;!\<%U%l%Y%k!#e(B

==== e$B6X;\_$5$l$kA`:ne(B

e$B%l%Y%ke(B0e$B$G$O!"6X;\_$5$l$kA`:n$O2?$b$J$$!#e(B

=== e$B%l%Y%ke(B1

e$B%l%Y%ke(B1e$B$G$O!"%W%m%0%i%`30It$+$i$NF~NO%G!<%?$K$h$C$F!"%W%m%0%i%`30It$N;qe(B  
e$B8;$KBP$9$k!"%W%m%0%i%^$N0U?^$KH?$7$?A`:n$,9T$o$l$k$3$H$rKI$0$?$a!#e(B

==== e$B6X;\_$5$l$kA`:ne(B

- e$B1x@w$5$l$?J8;zNs$r0z?t$H$7$?0J2\<$NA`:ne(B
  - Dir, IO, Filee$B!“e(BFileTeste$B$N%/%i%9%a%=%C%I!”%a%=%C%Ie(B

  - e$B%U%!%$%k%F%9%H1i;;;R$N;HMQ!"%U%!%$%k$N99?7;~9oHf3Se(B

  - e$B30It%3%^%s%I\<B9Te(B(system, exec, ``)

  - eval (e$B%l%Y%ke(B4e$B$N@bL@$b;2\>He(B)

  - 

e$B%H%C%W%l%Y%k$X$Ne(Bload(e$BBhFs0z?t$r;XDj$7$F%i%C%W$9$l$P\<B9T2DG=e(B)

- require
- trap
- e$B30It$N;q8;$KBP$9$k$=$NB\>$NA`:ne(B
- 

e$B30It%3%^%s%I\<B9Te(B(e$B4D6-JQ?te(BPATHe$B$K4m81$J%Q%9$r4^$s$G$$$k\>l9g$N$\_e(B)

=== e$B%l%Y%ke(B2

==== e$B6X;\_$5$l$kA`:ne(B

e$B%l%Y%ke(B1e$B$G6X;_$5$l$kA`:n$K2C$($F!"0J2<$NA`:n$,6X;_$5$l$k!#e(B

- Dir.chdir Dir.chroot Dir.mkdir Dir.rmdir
- File.chown File.chmod File.umask File.truncate File#lstat File#chmod  
File#chown File#delete File#unlink File#truncate File#flock  
e$B$\*$h$Se(BFileTeste$B%b%8%e!\<%k$N%a%=%C%Ie(B
- IO#ioctl, IO#fcntl
- Process.fork Process.setpgid Process.setsid Process.setpriority  
Process.egid= Process.kill
- e$B4m81$J%Q%9$+$i$Ne(Bload
- e$B1x@w$5$l$?J8;zNs$r0z?t$K$7$F$Ne(Bload(e$B%i%C%W$5$l$F$$$F$be(B)
- syscall
- exit!
- trap

=== e$B%l%Y%ke(B3

e$B%l%Y%ke(B3e$B$O!"?.Mj$5$l$F$$$J$$%3!\<%I$r\<B9T$9$k$?$a$N4D6-$r:n@.$9$k$?$a$KMxe(B  
e$BMQ$5$l$k!#%l%Y%ke(B3e$B$G@8@.$5$l$k%_%V%8%’%/%H$K$O!"e(Btaintede$B$_$h$Se(Buntrustede$B%Ue(B  
e$B%i%0$,@\_Dj$5$l$k!#e(B

==== e$B6X;\_$5$l$kA`:ne(B

e$B%l%Y%ke(B2e$B$G6X;_$5$l$kA`:n$K2C$($F!"0J2<$NA`:n$,6X;_$5$l$k!#e(B

- Object#untaint
- Object#trust

=== e$B%l%Y%ke(B4

e$B%l%Y%ke(B4e$B$O!"?.Mj$5$l$F$$$J$$%3!\<%I$r\<B9T$9$k$?$a$KMxMQ$5$l$k!#$?$@$7!"$3e(B  
e$B$N5!G=$O40A4$G$O$J$$!#\>:Y$K$D$$$F$O!"!V%;!\<%U%l%Y%ke(B4e$B$NLdBjE@!W$r;2\>H!#e(B

e$B$3$N%l%Y%k$G$O!"4m81$JA`:n$,$9$Y$F6X;_$5$l$F$$$k$?$a!"%l%Y%ke(B3e$B$G$O6X;_$5e(B  
e$B$l$F$$$k!V1x@w$5$l$?J8;zNs$Ne(Bevale$B!W$,5v2D$5$l$F$$$k!#e(B

==== e$B6X;\_$5$l$kA`:ne(B

e$B%l%Y%ke(B3e$B$G6X;_$5$l$kA`:ne(B(evale$B$O=|$/e(B)e$B$K2C$($F!"0J2<$NA`:n$,6X;_$5$l$k!#e(B

- Object#taint
- Object#untrust
- e$B%H%C%W%l%Y%k$NDj5A$NJQ99e(B(autoload, load, include)
- e$B4{B8$N%a%=%C%I$N:FDj5Ae(B
- Objecte$B%/%i%9$NDj5A$NJQ99e(B
- e$B?.Mj$5$l$?%/%i%9$d%b%8%e!\<%k$NDj5A$NJQ99e(B  
e$B$\*$h$S%/%i%9JQ?t$NJQ99e(B
- e$B?.Mj$5$l$?%\*%V%8%’%/%H$N\>uBV$NJQ99e(B
- e$B%0%m!\<%P%kJQ?t$NJQ99e(B
- e$B?.Mj$5$l$?e(BIOe$B$de(BFilee$B$r;HMQ$9$k=hM}e(B
- IOe$B$X$N=PNOe(B
- e$B%W%m%0%i%`$N=\*N;e(B(exit, abort) (e$B$J$\*e(Bout of  
memorye$B$G$be(Bfatale$B$K$J$i$J$$e(B)
- e$BB\>$N%9%l%C%I$K1F6A$,=P$ke(BThreade$B%/%i%9$NA`:ne(B  
e$B$\*$h$SB\>$N%9%l%C%I$Ne(BThread#[]
- ObjectSpace.\_id2ref
- ObjectSpace.each\_object
- e$B4D6-JQ?t$NJQ99e(B
- srand
- e$B30It$N;q8;$KBP$9$k$=$NB\>$NA`:ne(B

== untainte$B$K$D$$$F$N;X?Ke(B

=== e$B%"%W%j%1!\<%7%g%s$K$\*$1$ke(Buntaint

e$B%;!\<%U%l%Y%ke(B1e$B0J\>e$G!“1x@w$5$l$?%\*%V%8%’%/%H$K$h$C$F30It$N;q8;$NA`:n$r9Te(B  
e$B$&I,MW$,$”$k\>l9g$K$O!“e(BObject#untainte$B$K$h$C$Fe(Btaintede$B%U%i%0$r=|5n$9$kI,MWe(B  
e$B$,$”$k!#e(B

e$B$?$@$7!“e(Buntainte$B$r9T$&A0$K$O!”$=$N%_%V%8%’%/%H$rMxMQ$7$FEv3:A`:n$r9T$C$Fe(B  
e$B$bLdBj$J$$$3$H$N%A%’%C%/$r%_%V%8%’%/%H$KBP$7$F9T$&$Y$-$G$"$k!#e(B

=== e$B%i%$%V%i%j$K$\*$1$ke(Buntaint

e$B%a%=%C%I$N0z?t$J$I$G%f!\<%6$+$iM?$($i$l$?%G!\<%?$,1x@w$5$l$?%\*%V%8%’%/%He(B  
e$B$G$J$$\>l9g$O!"%f!\<%6$,;XDj$7$?A`:n$N\<B9T$r0U?^$7$F$$$k$HH=CG$7!"=hM}$Ne(B  
e$B\<B9T$KI,MW$JFbIt%G!\<%?$Ne(Buntainte$B$O!"%i%$%V%i%jB&$G9T$&$3$H$,K\>$^$7$$!#e(B

e$B%i%$%V%i%jFbIt$G@8@.$5$l$k%\*%V%8%’%/%H$K$D$$$F$O!"%i%$%V%i%j$N%f!\<%6B&e(B  
e$B$+$ie(Buntainte$B$9$k$3$H$,$G$-$J$$$?$a!"\>e5-$N$h$&$Je(Buntainte$B$r9T$o$J$$$H!"$=e(B  
e$B$N%i%$%V%i%j$r%;!\<%U%l%Y%ke(B1e$B0J\>e$G$OMxMQ$9$k$3$H$,$G$-$J$$$?$a$G$"$k!#e(B

== e$B3HD%%i%$%V%i%j$N:n@.;X?Ke(B

e$B3HD%%i%$%V%i%j$N:n@.$N:]$K$O!“0J2\<$NE@$KCm0U$9$kI,MW$,$”$k!#e(B

=== e$B%;!\<%U%l%Y%ke(B4e$B$K$\*$1$kA`:n$N6X;\_e(B

e$B%;!\<%U%l%Y%ke(B4e$B$G$O!"30It$N;q8;$KBP$9$kA`:n$r6X;_$9$Y$-$G$"$k!#A`:n$N6X;\_e(B  
e$B$K$O!"e(Brb\_secure()e$B$rMxMQ$9$k!#e(B

static VALUE  
readline\_readline(int argc, VALUE \*argv, VALUE self)  
{  
…  
rb\_secure(4);

=== e$B30It$+$i$NF~NO$Ne(Btaint

e$B%G!\<%?%Y!\<%9$+$i$N%G!\<%?$NFI$_9~$_;~$J$I!“30It$+$i$NF~NO$r85$K%_%V%8%'e(B  
e$B%/%H$r@8@.$9$k\>l9g$O!"@8@.$5$l$?%_%V%8%’%/%H$re(BOBJ\_TAINT()e$B$K$h$je(Btainte$B$9e(B  
e$B$Y$-$G$”$k!#e(B  
e$BJ8;zNs$N@8@.;~$K$O!"D\>@\e(BOBJ\_TAINT()e$B$r8F$S=P$9Be$j$K!"e(B  
rb\_tainted\_str\_new()e$B$de(Brb\_tainted\_str\_new\_cstr()e$B$rMxMQ$9$k$3$H$b$G$-$k!#e(B

== e$B%;!\<%U%l%Y%ke(B4e$B$NLdBjE@e(B

e$B8=:\_$N%;!\<%U%l%Y%ke(B4e$B$N\<BAu$O\<!$N$h$&$JLdBj$r;}$C$F$\*$j!"40A4$G$O$J$$!#e(B

- 

e$BL58B%k!\<%W$d%9%?%C%/%\*!\<%P!\<%U%m!\<$N8!=P$J$I$r9T$o$J$$$?$a!“e(BDoSe$B\>uBV$,e(B  
e$B0z$-5/$3$5$l$k2DG=@-$,$”$k!#e(B  
\*  
e$B3HD%%i%$%V%i%j$J$I$K$D$$$F$O!"%;!\<%U%l%Y%k$N%A%’%C%/$r9T$C$F$$$J$$$be(B  
e$B$N$,$"$k$?$a!“30It$N;q8;$KBP$9$kA`:n$r\<B9T$5$l$k2DG=@-$,$”$k!#e(B

---

<div class="post-metadata">

**Author:** ![Shugo\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Shugo\_M](https://www.ruby-forum.com/u/Shugo_M)\
**Post date:** [July 20, 2009, 3:53am UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286/2 "2009-07-20T03:53:35Z")

</div>

In article  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Shugo M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> === e$B%i%$%V%i%j$K$\*$1$ke(Buntaint
> 
> e$B%a%=%C%I$N0z?t$J$I$G%f!\<%6$+$iM?$($i$l$?%G!\<%?$,1x@w$5$l$?%\*%V%8%'%/%He(B  
> e$B$G$J$$\>l9g$O!“%f!\<%6$,;XDj$7$?A`:n$N\<B9T$r0U?^$7$F$$$k$HH=CG$7!”=hM}$Ne(B  
> e$B\<B9T$KI,MW$JFbIt%G!\<%?$Ne(Buntainte$B$O!"%i%$%V%i%jB&$G9T$&$3$H$,K\>$^$7$$!#e(B
> 
> e$B%i%$%V%i%jFbIt$G@8@.$5$l$k%\*%V%8%'%/%H$K$D$$$F$O!“%i%$%V%i%j$N%f!\<%6B&e(B  
> e$B$+$ie(Buntainte$B$9$k$3$H$,$G$-$J$$$?$a!”\>e5-$N$h$&$Je(Buntainte$B$r9T$o$J$$$H!“$=e(B  
> e$B$N%i%$%V%i%j$r%;!\<%U%l%Y%ke(B1e$B0J\>e$G$OMxMQ$9$k$3$H$,$G$-$J$$$?$a$G$”$k!#e(B

e$B$3$l$@$1$@$He(B untaint e$B$7$F$b0BA4$+$I$&$+$I$&$d$C$FH=CG$7$?$ie(B  
e$B$$$$$N$+$o$+$j$^$;$s$M$'!#e(B

e$BF0$+$J$+$C$?$i2?$b9M$($:$Ke(B untaint e$B$9$k$N$,@5$7$$$H$O$A$g$Ce(B  
e$B$H;W$($^$;$s$7!#e(B

e$B0BA4@-$K$D$$$F2?$r9M$($F8!F$$9$l$P$$$$$N$+$H$$$&$H$3$m$,$o$+e(B  
e$B$j$^$;$s!#e(B

---

<div class="post-metadata">

**Author:** ![Shugo\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Shugo\_M](https://www.ruby-forum.com/u/Shugo_M)\
**Post date:** [July 22, 2009, 6:09pm UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286/3 "2009-07-22T18:09:38Z")

</div>

e$B@\>;3OB9-$G$9!#e(B

At Sun, 19 Jul 2009 01:05:29 +0900,  
Shugo M. wrote:

> - e$B%\*%V%8%’%/%H$,!"%;!\<%U%l%Y%ke(B3e$B0J\>e$G@8@.$5$l$?\>l9ge(B
> - e$B%_%V%8%’%/%H$,!"B\>$N?.Mj$5$l$F$$$J$$%_%V%8%’%/%H$r85$K@8@.$5$l$?\>l9ge(B
> - Object#untruste$B%a%=%C%I$K$h$C$FL@\<(E\*$K%U%i%0$r@\_Dj$5$l$?\>l9ge(B
> 
> e$B$^$?!"e(BObject#truste$B%a%=%C%I$K$h$C$F%U%i%0$r=|5n$9$k$3$H$,$G$-$k!#e(B
> 
> untrustede$B%U%i%0$,@\_Dj$5$l$F$$$k$+$I$&$+$O!“e(BObject#untrusted?e$B%a%=%C%I$Ke(B  
> e$B$h$C$F8!::$9$k$3$H$,$G$-$k!#e(BObject#untrusted?e$B$O!”%U%i%0$,@\_Dj$5$l$F$$$ke(B  
> e$B\>l9g$Ke(Btruee$B$r!"@\_Dj$5$l$F$$$J$$\>l9g$Ke(Bfalsee$B$rJV$9!#e(B

untrusted e$B$O%U%i%0$H$7$F@\_Dj$5$l$?$j$5$l$J$+$C$?$j$9$k$@$1$G!“e(B  
e$B%U%i%0$,@\_Dj$5$l$F$$$k$+$I$&$+$K$h$C$F2?$i$+$NF0:n$K1F6A$9$ke(B  
e$B$b$N$G$O$J$$!”$H$$$&$3$H$J$N$G$7$g$&$+e(B?

e$B$=$&$$$&$b$N$@$H$9$k$H!"$I$&$$$&;H$o$l$+$?$rA[Dj$7$F$$$ke(B  
e$B%U%i%0$J$N$G$7$g$&$+e(B?

---

<div class="post-metadata">

**Author:** ![Shugo\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Shugo\_M](https://www.ruby-forum.com/u/Shugo_M)\
**Post date:** [July 23, 2009, 3:03pm UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286/4 "2009-07-23T15:03:31Z")

</div>

e$BA0ED$G$9!#e(B

2009/07/20 10:51 e$B$Ke(B Tanaka A.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
e$B$5$s$O=q$-$^$7$?e(B:

> e$B$3$l$@$1$@$He(B untaint e$B$7$F$b0BA4$+$I$&$+$I$&$d$C$FH=CG$7$?$ie(B  
> e$B$$$$$N$+$o$+$j$^$;$s$M$'!#e(B
> 
> e$BF0$+$J$+$C$?$i2?$b9M$($:$Ke(B untaint e$B$9$k$N$,@5$7$$$H$O$A$g$Ce(B  
> e$B$H;W$($^$;$s$7!#e(B
> 
> e$B0BA4@-$K$D$$$F2?$r9M$($F8!F$$9$l$P$$$$$N$+$H$$$&$H$3$m$,$o$+e(B  
> e$B$j$^$;$s!#e(B

e$B0JA0=q$$$?$3$H$N7+$jJV$7$K$J$j$^$9$,!“%;!\<%U%l%Y%ke(B1e$B!Ae(B3e$B$Ne(Btainte$B5!9=$Oe(B  
e$B$”$/$^$G$b%“%W%j%1!\<%7%g%s%W%m%0%i%^$N%\_%9$KBP$9$k%U%'!\<%k%;!\<%U5!9=e(B  
e$B$G$”$j!“0BA4@-$N3NG’$O%i%$%V%i%jB&$G$O$J$/%”%W%j%1!\<%7%g%sB&$N@UG$$@$He(B  
e$B9M$($F$$$^$9!#e(B  
e$B:#$N%;%-%e%j%F%#%b%G%k$G$O!“%”%W%j%1!\<%7%g%s$+$iEO$5$l$?%\*%V%8%'%/%H$,e(B  
e$B1x@w$5$l$F$$$J$$\>l9g$O!“%i%$%V%i%j$O%”%W%j%1!\<%7%g%s$K;X\<($5$l$?DL$j$Ke(B  
e$BF0:n$9$k$3$H$,4|BT$5$l$F$$$k$h$&$K;W$$$^$9!#e(B

# e$B@\_7W\<T$N$^$D$b$H$5$s$K0c$&$H8@$o$l$l$PJL$G$9$,!#e(B

e$BCfESH\>C\<$@$H8@$o$l$l$P$=$&$+$b$7$l$^$;$s$,!“$^$:$O8=:\_$N@\_7W$N0U?^e(B  
e$B$rL@3N$K$7$?$$$H;W$$$^$9!#e(B  
e$B$=$N\>e$G!“JQ$($?J}$,$h$$!”$”$k$$$O$$$C$=$N$3$H$J$/$7$F$7$^$C$?J}$,$h$$!"e(B  
e$B$H$$$C$?5DO@$r$7$?$$$G$9!#e(B

---

<div class="post-metadata">

**Author:** ![Shugo\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Shugo\_M](https://www.ruby-forum.com/u/Shugo_M)\
**Post date:** [July 23, 2009, 3:11pm UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286/5 "2009-07-23T15:11:07Z")

</div>

e$BA0ED$G$9!#e(B

2009/07/23 1:09 e$B$Ke(B Kazuhiro NISHIYAMA[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
e$B$5$s$O=q$-$^$7$?e(B:

> untrusted e$B$O%U%i%0$H$7$F@\_Dj$5$l$?$j$5$l$J$+$C$?$j$9$k$@$1$G!“e(B  
> e$B%U%i%0$,@\_Dj$5$l$F$$$k$+$I$&$+$K$h$C$F2?$i$+$NF0:n$K1F6A$9$ke(B  
> e$B$b$N$G$O$J$$!”$H$$$&$3$H$J$N$G$7$g$&$+e(B?

e$B0c$$$^$9!#e(B

e$B!V%;!\<%U%l%Y%ke(B4e$B!W$N!V6X;\_$5$l$kA`:n!W$K5s$2$F$$$k0J2<$NA`:n$N%A%'%C%/$Ke(B  
e$BMxMQ$5$l$^$9!#e(B

# e$BH4$1$,$"$k$+$b$7$l$^$;$s!#e(B

- e$B?.Mj$5$l$?%/%i%9$d%b%8%e!\<%k$NDj5A$NJQ99e(B  
e$B$\*$h$S%/%i%9JQ?t$NJQ99e(B
- e$B?.Mj$5$l$?%\*%V%8%'%/%H$N\>uBV$NJQ99e(B
- e$B?.Mj$5$l$?e(BIOe$B$de(BFilee$B$r;HMQ$9$k=hM}e(B

e$B4pK\E\*$K%;!\<%U%l%Y%ke(B4e$B$G$O?.Mj$5$l$F$$$J$$%_%V%8%'%/%He(B(untrustede$B%U%i%0e(B  
e$B$,@\_Dj$5$l$?%_%V%8%'%/%He(B)e$B$7$+JQ99$G$-$^$;$s!#e(B

e$B0JA0$O$3$l$,e(Btaintede$B%U%i%0$K$h$C$F%A%‘%C%/$5$l$F$$$?$N$G!"%5%s%I%%C%/%9e(B  
e$B30$G@8@.$5$l$?%\*%V%8%’%/%H$,$?$^$?$^e(Btaintede$B$@$C$?\>l9g$K!“$=$l$r=q$-JQe(B  
e$B$($k$3$H$K$h$j!”%;!\<%U%l%Y%ke(B4e$B$G6X;\_$5$l$?A`:n$r\<B9T$5$;$k$3$H$,$G$-$ke(B  
e$B@H\<e@-$,$$$/$D$bJs9p$5$l$^$7$?!#e(B  
e$BEv=i$O0l$D$:$De(Bfreezee$B$9$kBP:v$,\<h$i$l$^$7$?$,!"$-$j$,$J$$$N$G!"e(B  
taintede$B$H$OJL$N%U%i%0$H$7$Fe(Buntrustede$B$rMQ0U$9$kJQ99$r;d$,9T$$$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![Shugo\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Shugo\_M](https://www.ruby-forum.com/u/Shugo_M)\
**Post date:** [August 4, 2009, 7:01pm UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286/6 "2009-08-04T19:01:51Z")

</div>

e$B@\>;3OB9-$G$9!#e(B

At Thu, 23 Jul 2009 22:09:36 +0900,  
Shugo M. wrote:

> e$BA0ED$G$9!#e(B
> 
> 2009/07/23 1:09 e$B$Ke(B Kazuhiro NISHIYAMA[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) e$B$5$s$O=q$-$^$7$?e(B:
> 
> > untrusted e$B$O%U%i%0$H$7$F@\_Dj$5$l$?$j$5$l$J$+$C$?$j$9$k$@$1$G!“e(B  
> > e$B%U%i%0$,@\_Dj$5$l$F$$$k$+$I$&$+$K$h$C$F2?$i$+$NF0:n$K1F6A$9$ke(B  
> > e$B$b$N$G$O$J$$!”$H$$$&$3$H$J$N$G$7$g$&$+e(B?
> 
> e$B0c$$$^$9!#e(B

untrust  
e$B$G8!:w$7$F0c$$$r%A%'%C%/$7$F$$$?$i8+Mn$H$7$F$7$^$C$F$$$^$7$?!#e(B

> e$B0JA0$O$3$l$,e(Btaintede$B%U%i%0$K$h$C$F%A%‘%C%/$5$l$F$$$?$N$G!"%5%s%I%%C%/%9e(B  
> e$B30$G@8@.$5$l$?%\*%V%8%’%/%H$,$?$^$?$^e(Btaintede$B$@$C$?\>l9g$K!“$=$l$r=q$-JQe(B  
> e$B$($k$3$H$K$h$j!”%;!\<%U%l%Y%ke(B4e$B$G6X;\_$5$l$?A`:n$r\<B9T$5$;$k$3$H$,$G$-$ke(B  
> e$B@H\<e@-$,$$$/$D$bJs9p$5$l$^$7$?!#e(B  
> e$BEv=i$O0l$D$:$De(Bfreezee$B$9$kBP:v$,\<h$i$l$^$7$?$,!"$-$j$,$J$$$N$G!"e(B  
> taintede$B$H$OJL$N%U%i%0$H$7$Fe(Buntrustede$B$rMQ0U$9$kJQ99$r;d$,9T$$$^$7$?!#e(B

tdiary-devel e$B$G$H$j$"$($:e(B 1.9 e$B$G$bF0$/$h$&$K$9$kJ}K!$H$7$Fe(B

class Object  
def taint  
super  
untrust  
end  
end if respond\_to?(:untrust)

e$B$H$$$&0F$r=P$7$F$7$^$$$^$7$?$,e(B(Objecte$B$KDj5A$7$F$$$k$N$Oe(B  
Kernele$B$GDj5A$5$l$F$$$k85$Ne(Btainte$B$r4JC1$K8F$V$?$ae(B)e$B!"e(B  
e$BJQ99$N0U?^$r9M$($k$He(B

module Kernel  
unless method\_defined?(:untrust)  
alias untrust taint  
end  
end

e$B$N$h$&$Ke(B untrust e$B$,L5$1$l$PDj5A$7$F!"e(Btaint e$B$NBe$o$j$Ke(B  
untrust e$B$r;H$&$Y$-$J$N$G$7$g$&$+e(B?

---

<div class="post-metadata">

**Author:** ![Shugo\_M](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Shugo\_M](https://www.ruby-forum.com/u/Shugo_M)\
**Post date:** [August 5, 2009, 2:37am UTC](https://www.ruby-forum.com/t/b-e-j-f-b-g-k-n-i-e-a-s-h-b/172286/7 "2009-08-05T02:37:19Z")

</div>

e$BA0ED$G$9!#e(B

2009/08/05 2:00 e$B$Ke(B Kazuhiro NISHIYAMA[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
e$B$5$s$O=q$-$^$7$?e(B:

> > e$B0c$$$^$9!#e(B
> 
> untrust e$B$G8!:w$7$F0c$$$r%A%'%C%/$7$F$$$?$i8+Mn$H$7$F$7$^$C$F$$$^$7$?!#e(B

untruste$B$H$$$&MQ8l$rF~$l$?J}$,$o$+$j$d$9$$$+$b$7$l$J$$$G$9$M!#e(B  
e$B$b$H$b$H$NL\>A0$,0-$$$N$G!"!Ve(Buntrustede$B$G$J$$!W$N$h$&$KFs=EH]Dj$Ke(B  
e$B$J$C$F$7$^$$$^$9$,e(B…e$B!#e(B

> e$BJQ99$N0U?^$r9M$($k$He(B
> 
> module Kernel  
> unless method\_defined?(:untrust)  
> alias untrust taint  
> end  
> end
> 
> e$B$N$h$&$Ke(B untrust e$B$,L5$1$l$PDj5A$7$F!"e(Btaint e$B$NBe$o$j$Ke(B  
> untrust e$B$r;H$&$Y$-$J$N$G$7$g$&$+e(B?

e$B$O$$!“0U?^$rL@3N$K$9$k$?$a$K$O!”$=$NJ}$,K\>$^$7$$$h$&$K;W$$$^$9!#e(B
