[#26266] pragma on ripper — nobuyoshi nakada <nobuyoshi.nakada@...>

なかだです。

15 messages 2005/06/02

[#26312] rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org>

最近、とあるプログラム(五月雨)が、無限ループに陥ることが何回かありました。

32 messages 2005/06/09
[#26323] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/10

In article <TYOMLEM04Rqf69aZbLA0000002d@tyomlvem02.e2k.ad.ge.com>,

[#26329] Re: rb_gc_mark_threads spin — nobu@... 2005/06/10

なかだです。

[#26331] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506101543.j5AFhToG009328@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26333] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <8764wlil9l.fsf@m17n.org>,

[#26334] Re: rb_gc_mark_threads spin — nobu@... 2005/06/11

なかだです。

[#26337] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506111335.j5BDZkoG019423@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26405] WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org>

NetBSD 2.0 で WEBrick を使って HTTP サーバを動かした場合、クライアント

24 messages 2005/06/29
[#26477] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

ごとうゆうぞうです。

[#26480] Re: WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org> 2005/07/08

In article <20050708.175802.957830318.gotoyuzo@sawara.does.notwork.org>,

[#26481] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

In message <87fyupzgcq.fsf@m17n.org>,

[#26421] Subversion — Shugo Maeda <shugo@...>

前田です。

24 messages 2005/06/30
[#26422] Re: Subversion — Yukihiro Matsumoto <matz@...> 2005/06/30

まつもと ゆきひろです

[#26423] Re: Subversion — "U.Nakamura" <usa@...> 2005/06/30

こんにちは、なかむら(う)です。

[ruby-dev:26405] WEBrick DoS vulnerability

From: Tanaka Akira <akr@...17n.org>
Date: 2005-06-29 16:01:40 UTC
List: ruby-dev #26405
NetBSD 2.0 で WEBrick を使って HTTP サーバを動かした場合、クライアント
がリクエストした後データを受け取らないことにより、サーバプロセス全体を
ブロックさせてしまうことができるようです。

| server% cd sample/webrick 
| server% ../../ruby -e 'print "a" * 100000' > z

100000bytes のファイルを作ります。

| server% ../../ruby httpd.rb
| [2005-06-30 00:51:50] INFO  WEBrick 1.3.1
| [2005-06-30 00:51:50] INFO  ruby 1.9.0 (2005-06-28) [i386-netbsdelf2.0]
| [2005-06-30 00:51:50] DEBUG TCPServer.new(::, 10080)
| [2005-06-30 00:51:50] DEBUG TCPServer.new(0.0.0.0, 10080)
| [2005-06-30 00:51:50] DEBUG WEBrick::HTTPServlet::FileHandler is mounted on /.
| [2005-06-30 00:51:50] DEBUG HelloServlet is mounted on /hello.
| [2005-06-30 00:51:50] DEBUG DemoServlet is mounted on /urlencoded.
| [2005-06-30 00:51:50] DEBUG DemoServlet is mounted on /multipart.
| [2005-06-30 00:51:50] INFO  WEBrick::HTTPServer#start: pid=3354 port=10080

sample/webrick/httpd.rb を起動します。

| client% ./ruby -rsocket -e 'TCPSocket.open("localhost", 10080) {|s|
| s.print "GET /z HTTP/1.0\r\n\r\n"
| sleep
| }'

他の window から z をリクエストしてデータを受け取らないクライアントを動かします。

| [2005-06-30 00:52:09] DEBUG accept: ::1:57998
| [2005-06-30 00:52:09] DEBUG WEBrick::HTTPServlet::FileHandler is invoked.

するとサーバは上の 2行を出力します。

| client2% telnet localhost 10080 
| Trying ::1...
| Connected to localhost.
| Escape character is '^]'.
| GET / HTTP/1.0
| 
| 

ここでさらに他の window からリクエストを送っても反応しません。

まぁ、よーするに write でブロックしてるわけですが...
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next