Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 検索のタイトル表示



寺西です

Toshio IMAO wrote:
> 
> > もし、そうなら例えば次のような場合は
> >
> > <TITLE><abc></TITLE>
> >
> > これを
> >
> > <TITLE>&lt;abc&gt;</TITLE>
> >
> > と書き直せば、半角になりますが表示されるのではないかと思います。
> >
> 
> 半角でOKですので、これをヒントに少しフィルターを調べてみました。

なぜ、フィルタに手を加えるのでしょう?
問題の HTML ファイルを修正するわけにはいかないのでしょうか?

> 下記、タイトルを取り出す部分? …4行目でタイトル無しと
> 判断されファイル名が表示されたようです。

それは分かっていますが...。

> これを、下記のように変更して、とりあえずOKのようです。
>     if ($$contref =~ s!<TITLE>(.+)</TITLE>!!i) {

何故、そのようになっているのかは考えていただけているでしょうか?

これですと、TITLE タグに属性が付いているときはやはり、ファイル名が
表示されます。
</TITLE> が複数ある場合にも問題が生じますが、その確率は低いので
無視しても良いでしょう。

問題は...

TITLEタグの中に別の HTML タグが含まれている場合、それがそのまま
結果に出力されてしまうのではないかと思います。(未確認)
この場合、セキュリティ上まずいことになるような気がします。
ゆえに、お勧めしません。

# namazu.cgi の場合ですけどね。

> 半角ですと、HTMLタグと同じであるため、全角の方が扱いやすと
> 考えただけです。半角でかまいません。

では '<' を &lt; '>' を &gt; と書き換えることをお勧めします。

お勧めしませんが、やるなら上記のように
if ($$contref =~ s!<TITLE>(.+)</TITLE>!!i) {
で切り出した後の文字列の '<', '>' 等は少なくとも &lt; &gt; に
書き換える処理を加えましょう。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E