[Nkf-dev 8] Re: eucJP-msのマッピング変更について

アーカイブの一覧に戻る

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




nkf-dev メーリングリストの案内
アーカイブの一覧に戻る