« 校長室でアダルトサイト | メイン | ニュース検索.jp »

2004年11月12日

Namazu を CGI から呼び出す

FeedBack の naoya さんに「Namazuをどうやって扱ってます?」って質問させていただいたら、丁寧に「コマンドで呼び出してるよ」という返事をいただいた。ということなので、僕もそういう方向で実装する予定です。

ただし、仕様の問題がありそのままでは CGI から呼び出せません。これは、わざわざ namazu.cgi があるんだから CGI から呼び出す必要が無いだろ?っていうのと、任意コマンドが実行できてしまうという危険性を少しでも減らそうという配慮からきているらしいです。

そんな危険性を承知の上で Perl CGI から呼び出すには、以下のように書けば良いと思う。

#!/usr/bin/perl
delete $ENV{'SCRIPT_NAME'};
$r = `namazu query /index`;
print "Content-type: text/html\n\n";
print $r;
exit;

要は SCRIPT_NAME の内容を削除すればいいのです。代わりに QUERY_STRING の内容を削除するのでもよいです。もちろん、この方法でプログラミングすると、ブラウザから任意コマンドを実行できてしまう危険性があるのでその辺を注意しなければなりません。

とりあえず、文字変換ライブラリを書くかなぁ。だって Namazu の変換とあわせないと適切な検索が出来ないような気がします。まぁ。全角英数字・記号を半角にするだけかな。

【関連情報】
・FeedBack - Yet Another RSS Search
 http://naoya.dyndns.org/feedback/

2004年11月12日 21:19 | Programming

トラックバック

コメント

LWPとかを使ってnamazu.cgiを動かした方が、簡単に安全が確保できるような気がします。

投稿者 かぜぶろ : 2004年11月13日 20:10

>> かぜぶろ さん
かなり安全かと思います。
かぜぶろさんの blog は、毎日読ませていただいております。今後ともよろしくお願いします。

投稿者 ceekz : 2004年11月13日 23:23