Tadamasa Teranishi
yw3t-****@asahi*****
2006年 1月 30日 (月) 12:01:57 JST
寺西です。 "NARUSE, Yui" wrote: > > > 実際にユーザは、どう注意すればよいのでしょうか?という疑問があります。 > > 出力結果に '\' が出てきたら、もう一度入力を調べて、元々 '\' だった > > のかどうかを見る、ということでしょうか? > > そうなります・・・かね。 > 事前にU+00A5やU+203Eを削除してしまうというのも一つの手かもしれません。 そういう機能を NKF に付けるのなら、そういうのもひとつの手ではあります。 > Tadamasa Teranishi wrote: > > http://www.opengroup.or.jp/jvc/cde/ucs-conv.html#ch3_1 > > > > の 3.1.2 コード変換規則 をみると、 > > 「Unicode とユーザ定義文字・ベンダ定義文字に関する問題点と解決策」 > > に従っていないような気がして、glibc のものに問題があるような気は > > します。 > > eucJP-msにおいては、U+00A5の対応は書かれていないため、 > 従っていないというわけでもない、と考えます。 > 3.1.1 (1) a.でUCSからの多対一変換への言及もありますし。 多対一変換の問題は別にありますが、ここは「¥」問題ですので、 その趣旨には従っていないように思います。 > > これはどうしようもないことですし、実際いろいろ問題が起こります。 > > http://jvn.jp/jp/JVN%2318282718/index.html > > http://qdbm.sourceforge.net/mikio/rbbs.cgi?id=RA11304958080739742137 > > > > Microsoft が CP932の変換をしっかり考えていなかったのが敗因でしょう。 > > あ、どこかでCP932関連の前例を見た気はしていたのですが、 > Hyper Estraierでしたか。 > とりあえず、次のnkfのドキュメントには、 > この脆弱性情報へのリンクは入れておこうと思います。 これが本当に「脆弱性」なのかについては、疑問もあるのですけどね。 CP932の問題(というか ANSI 版 Win32 API の問題)なので、そのまま NKF にあてはめる話ではないのですが、参考程度にということです。 > 1. 脆弱性の範囲 > ふと思ったのですが、この脆弱性情報を見直すと、 > これって任意のUCSからの多対一変換全てが問題になりませんか。 全ての多対一の問題ということではありません。 > 行きと帰りでマッピングが異なっても、JVN#18282718の問題1にかかりますが、 > これはマッピングをそろえればいいとして。(揃えられます?) 単純な多対一の問題は、マッピングが揃えれば問題にならないことですし、 マッピングを揃えていなければ当然起こる問題です。 ここで問題になっているのは、マッピングを揃えているのに、 起こる「¥」問題になります。 ちなみに問題2は、 (C) が C にマップされることで、DDN (DOS Device Name) に変換され、アクセスできなくなる問題です。 例) "(C)ON" が "CON" に変換され問題が起こる。 多対一によって発生する部分ではありますが、仮に一対一であっても マッピングによっては問題は起きます。 > Unicodeで渡されたパスをEUC-JPに変換して格納し、 > Shift_JISに変換してWin32APIに渡す、なんてことをしている場合は、 > どこまでが問題になるのかわからないのですが・・・。 ここの話について言えば、 US-ASCII 外から US-ASCII に変換されるのは全て問題ということ になります。 US-ASCII の範囲に特殊な意味を持たせてキャラがありますから。 となると、その変換を抑止するオプションがあれば良いということ になりますかね? > 3. 変換フィルタの取れる対策 > 3.1 往復変換保障オプション > せっかくEUC-JPに変換できない文字をエスケープする機能をつけたのですし、 > 往復変換が保障できない文字は変換しない、 > (そしてfallbackで拾われてエスケープされるため、 > うまく処理すればUnicode全範囲について往復互換性を確保できる) > というオプションをつけるのもありかもしれません。 そうですね。 > 3.2. U+00A5とU+203Eについて > とりあえず、U+00A5とU+203Eについては、 > eucJP-msマッピングから削除してしまうのもありかな、 > とは思っています。 はい。 > JVCの変換規則にない変換は全て削除、という手もありますが、 > U+301Cのマッピング等は利便性を考えると残しておきたい気もして。。 具体的にはどのような利便性でしょう。 -- ===================================================================== 寺西 忠勝(TADAMASA TERANISHI) yw3t-****@asahi***** http://www.asahi-net.or.jp/~yw3t-trns/index.htm Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E