[#32695] md5.so (LoadError) — FUKUI Osamu <o-fukui@...>
はじめまして 福井と申します。
In message "[ruby-list:32695] md5.so (LoadError)"
福井です。
In message "[ruby-list:32698] Re: md5.so (LoadError)"
[#32721] コマンドラインオプション -K と -e — "Tatsuaki Nagai" <Tatsuaki_Nagai@...>
永井@KCです。
[#32727] require "./xxx" の「カレントディレクトリ」の意味 — Take_tk <ggb03124@...>
あるディレクトリαにあるスクリプトAに「require "./xxx"」と書いてあると、
まつもと ゆきひろです
たけ(tk)です。
In article <1007384829.854960.10474.nullmailer@ev.netlab.jp>,
たけ(tk)です。
まつもと ゆきひろです
[#32772] newdate — tadf@...
ふなばです。
In article <20011204234521G.tadf@kt.rim.or.jp>,
ふなばです。
まつもと ゆきひろです
ふなばです。
In article <20011210180612F.tadf@funaba.org>,
ふなばです。
なひです。
ふなばです。
なひです。
ふなばです。
まつもと ゆきひろです
ふなばです。
In article <20011210162702A.tadf@funaba.org>,
ふなばです。
In article <20011212093832C.tadf@funaba.org>,
ふなばです。
In article <20011212135605G.tadf@funaba.org>,
まつもと ゆきひろです
すいません。件名が変だったので、再送します。コメントをくださる方は、
須賀です。昨日の議論を反映して、仕様案(*)を改版しました。
[#32797] dir_config (mkmf.rb) のオプション指定の優先順位 — tamra@...
なかだです。
In <200112060205.fB625u928906@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In <200112060838.fB68bx924929@sharui.nakada.kanuma.tochigi.jp>
なかだです。
[#32807] irb 0.8 release — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
From: keiju@rational.com (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
From: keiju@rational.com (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
From: keiju@rational.com (石塚圭樹)
From: rubikitch <rubikitch@ruby-lang.org>
けいじゅ@日本ラショナルソフトウェアです.
From: keiju@rational.com (石塚圭樹)
[#32814] 添削お願い — Take_tk <ggb03124@...>
見てのとおり、ユーザが指定した拡張子のリストの文字列を正規表現の配列に変
[#32836] configure.in for netbsd — hiramatu@...
平松と申します。
[#32858] [ANN] html-template 0.15 — IKEBE Tomohiro <ikebe@...>
[#32869] RAA update — rubikitch <rubikitch@...>
るびきちです。
[#32904] Segmentation fault — em6t-kbt@...
久保田です。
[#32923] Ruby/GSL — yoshiki@...
常定と申します。
[#32930] irbsh の rehash が遅い — rubikitch <rubikitch@...>
るびきちです。
新井です。
[#32935] Ruby256 倍本 " 界道編 " — shukaku@...
原です。
なかだです。
新井です。
[#32945] class-in-state — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#32948] [uri.rb] strip or not — rubikitch <rubikitch@...>
るびきちです。
[#32974] ruby で組んだ CGI の挙動がおかしい — Toru MITANI <toru_m@...2.dion.ne.jp>
[#32987] [Media Watch] 「横着プログラミング」 — Shin-ichiro HARA <sinara@...>
原です。
[#32989] write to $> causes error on mswin32/mingw32 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
あおきです。
こんにちは、なかむら(う)です。
[#33014] "Walrus" on LinuxJapan — Taku Nakajima <tnakajima@...>
中島@ブレーンです。
[#33026] Ruby 1.6.6 リファレンスマニュアル日本語版 (RD) — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#33047] regex bug? — Yamamoto Atsushi <yamamoto@...>
山本@東大駒場です.
[#33050] cgi.rb で cookie の encoding について — Beyond <beyond@...>
こんにちは、なかむら(う)です。
なかだです。
なかだです。
On Fri, 28 Dec 2001 15:46:50 +0900
青山です。
In message <20011228054515.726.qmail@localhost>
青山です。
青山です。
In article <20011229013722.1869.qmail@localhost>,
青山です。
青山です。
宮川といいます。
(根深いところでこじれているようですが…そこはひとまずおいといて、)
[#33114] 新年会 — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[ruby-list:33104] Re: cgi.rb で cookie の encoding について
もう少し考えてみました。エスケープ処理は結果オーライでやってしまうとセ
キュリティ上の問題を引き起こすこともあるので、どのようにするのが最も正
しいかというのは興味あるところです。
On Sat, 29 Dec 2001 08:52:36 +0900
"TAKAGI, Hiromitsu" <takagi.hiromitsu@aist.go.jp> wrote:
> つまり、cookieにprintableでない文字を入れる場合、それをescapeするのは、
> そのコードを書く者の責任であるとするのが正しいと思います。
そもそも、escapeメソッドを使用する目的には次の2種類があるようです。
(1) その文字列を、特定の文字を使用できない場所で使用するつもりの場合に、
その使用できない文字をescapeする。
具体的には、例えば日本語の文字列を、URLやcookieなどのnon-printable
な文字を入れてはならないところに入れる場合がこれに該当します。
(2) その文字列を、特定の文字がメタキャラクタとなっている文脈で使用する
場合に、そのメタキャラクタと同じ文字をescapeする。
具体的には、その文字列を、ある区切り文字(例えば「&」)で連結して
使用する際に、区切り文字と同じ文字をescapeする。
これら2つの目的のために、同じescapeメソッドが使用されているわけですが
(JavaScriptのescapeメソッドもそうなっている)、本来この2つの目的には
別々のメソッドを用意すべきではないでしょうか。すなわち、
(1)の目的のために:
使用できない文字だけをエスケープするメソッド。
例えばURLの場合、RFCの定義に従って該当する文字だけをエスケープする
と、「&」などはエスケープされない。この点で、現状の escapeメソッド
とは異なる処理。
(2)の目的のために:
引数に指定された文字だけをエスケープするメソッド。
例えば「&」で連結する場合には、
foo.cgi? + "aaa" + escpae("&", aaa_val) + "&" + "bbb" + escape(...
のように、「escape("&", aaa_val)」と、その文脈におけるメタキャラク
タを引数に指定する。
そして、これら(1)、(2)と直交して、どのようなエンコード方法でエスケープ
するかがあるわけですね。で、URLおよびcookieの場合は URL encode(%XX)
を使用することになっていると。
なので、
(1)のメソッドを例えば「url_normalize(source_string)」、
(2)のメソッドを例えば「url_escape(metacharacters, source_string)」
として準備しておき、
例えば cgi-lib.rb の
def CGI::cookie(options)
"Set-Cookie: " + options['name'] + '=' + escape(options['value']) +
(options['domain'] ? '; domain=' + options['domain'] : '') +
(options['path'] ? '; path=' + options['path'] : '') +
(options['expires'] ? '; expires=' + rfc1123_date(options['expires']) : '') +
(options['secure'] ? '; secure' : '')
end
は、次にようにするのが妥当ではないかと。
def CGI::cookie(options)
"Set-Cookie: " + url_normalize(
url_escape([':', ';', ' '],
url_escape(['='], options['name']) + '=' +
url_escape(['='], options['value'])
) + (options['domain'] ?
'; ' + url_escape([':', ';', ' '],
'domain=' + url_escape(['='], options['domain'])
) : ''
) + (options['...
...
)
end
こうしておけば、valueに渡す文字列に事前にエスケープ処理は必要ないと。
それで、valueに複数のものを適当な区切り記号で連結して渡したいならば、
そういうデータ構造のためのクラスを用意して処理するのが良いのではないか
と。例えば、
value = concatenated_values.new('|', p1, p2, p3)
として使用すると。(もしp1内に「|」が含まれているならエスケープされる)
高木 浩光@独立行政法人産業技術総合研究所
http://staff.aist.go.jp/takagi.hiromitsu/