[Namazu-devel-ja 1207] Re: Namazu 2.0.17 のリリース準備
Tadamasa Teranishi
yw3t-trns @ asahi-net.or.jp
2006年 9月 9日 (土) 16:34:38 JST
寺西です。
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 @ asahi-net.or.jp
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 メーリングリストの案内