2006年9月 9日

[Namazu-devel-ja 1207] Re: Namazu 2.0.17 のリリース準備

寺西です。

NOKUBI Takatsugu wrote:
>
> At Sat, 09 Sep 2006 00:57:44 +0900,
> Tadamasa Teranishi wrote:
> > NMZ.head, NMZ.footで {cgi} {doc} を複数使用した時で、置き換え時にバッ
> > ファサイズよりも長くなった場合、バッファオーバーフローを起こします。

> >
> > ただ、あまり詳しく書かなくても良いかもしれません。
>
> うーん、一応「こうすれば運用で回避できる」ということをしらしめる意味
> ではやっぱり書いたほうがいい気がします。もちろんいいことではないのです
> けど。

なるほど。

従来の処理はこんな感じでした。

テンプレートの {cgi} を SCRIPT_NAME の内容に、{doc} を DOCUMENT_URI
の内容に書き換えます。この時、バッファをSCRIPT_NAMEとDOCUMENT_URIの
サイズ分(+1 何故か??)だけ拡張します。("{cgi}", "{doc}" 分の 5x2=10
バイト分は余計に確保されています。)

デフォルトのテンプレートには {cgi} が2個、{doc} が0個書かれています。
SCRIPT_NAME が DOCUMENT_URI より長いことは普通はないので、
デフォルトのテンプレートを使う({cgi} を2個書いている場合)は、バッファ
サイズに収まります。

テンプレートをカスタマイズした場合でも、{cgi} と {doc} がそれぞれ 1個、
あるいは、{cgi} が 2個だけの場合は、バッファサイズに収まるでしょう。
しかし、それ以上に {cgi} {doc} を追加した場合には、バッファサイズを
越える可能性があります。
もっとも、確保したサイズが SCRIPT_NAMEとDOCUMENT_URIのサイズ分 +1 + 10
なので、{cgi} {doc} の展開したサイズがこれ以内に収まっている場合は
問題が起きません。

また、テンプレートはファイル単位にバッファを確保しますので、
NMZ.head と NMZ.foot と合わせて {cgi} が3個であっても問題ありません。

ということです。

なお、サイト管理者側の設定なので、サイト攻撃者がどうこうできる話でも
ないので、危険度はそれほど高くはないはずです。

> > 強調表示を無効にする方法というのが思いつきませんが、無効にしても回避
> > はできないと思います。
...
> これは勘違いでした。確かにできないですね。なぜかできるものだと思って
> いたのですが、それは単にEmphasisTagsを空っぽにすればいいとかそんな感じ
> でしかできそうにないです。どちらにしろ処理は通るのでだめですかね...

はい。強調処理ルーチンのバグなので、EmphasisTags の中身には依存しない
はずです。たぶんEmphasisTagsが空なら何もしないとかって特別なことは
していなかったと思いますから。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2006年9月 9日 16:34
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/45719
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。