Blog構築とかCGIとか

Web拍手のスパム対策。

このところ、Web拍手のコメント欄にURLを連続して入力してくるスパムが多発しておりました。一つのコメントに、複数のURLを入力していく輩です。
大分前から気にはなっていたんですが、ついつい放置。

「Web拍手」と書いてあるボタンをぽちっと押して拍手をいただくような通常の利用では問題がないようなんですが、うちはブログなどに一言フォーム的な設置の仕方をしてまして。
どーやらそのFORMタグを狙って書き込んでいく自動スクリプトにやられたっぽいです。

同様の問題を提示しているところで「外部から実行させないようにすれば」という記事を読んだんですが、どーもそれだと他のブログに設置してある場合に不具合が起きそうな予感。
ならば、書き込みのルーチン内で不正だと判断し、エラー値を返すような仕様に変更すれば良さそうだと検索。
掲示板改造支援サイトさんでヒントをいただいたので、早速スクリプトを改造・実行してみました。

Web拍手のCGI(clap.cgi)では、一言メッセージは次のように処理されています。

if ($hitokoto ne ''){
$mesdata = "$getdate<>$tohour<>$hitokoto<>\n";
open(OUT,">>$mesfile");
print OUT $mesdata;
close(OUT);
}


この中に、

$urlnum = ($in{'hitokoto'} =~ s/http/http/ig);
if ($urlnum >= 2) { &error("URLの多数書き込みは禁止です"); }

でメッセージ中の数値を算出し、設定以上の数値を書き込んだらアウトという形でエラー値を返すように書き換え。
上記では2つ以上URLを書き込んだらアウトという感じにしましたが。

3つぐらいURLを書き込んで実行したらInternal Server Errorが出ちゃって、エラーメッセージが出ない状況です(^-^;)
うーむ、あとは何を加えればいいんでしょう……(^-^;)
教えて偉い人。
(てゆーか適当にこうかと思って実行する私も私ですが)

……通常の使用だと支障がないし(コメント内でもURLが1つならOK)、自動スクリプトが書き込めないならいいか?(こら)

CGIファイルはこれこれ。(テキストファイルになってます)
どなたかお力をプリーズ(はぁと)

ちなみに、スパム被害はレンタル版では出ていないっぽいです。
大元で対応したんでしょうかねぇ……

------

その後、あけびさんからご助言いただきました。

1個目のスクリプトの最後に

sub error {
my($s)=@_;
print "Content-type: text/html\n\n";
print "<html><body>$s</body></html>";
exit;
}

を加えればたぶん大丈夫かな?

ありがたや~とトライヽ(´ー`)ノ
加えてみたら「多重書き込みは禁止です」メッセージは表示されますが、拍手としてはカウントされてますねぇ。 (入れないと、エラーで実行しない状態になってるのかな)

通常のユーザーさんにはこの方が親切ですな(^-^;)
海外からのアタックはコメントが鬱陶しいので、見えないようになるならこれでいいかな?

というわけで、引き続き考え中です。

|

テンプレ編集ソフト

FC2ブログカスタマイズ用覚え書き。

HepCat Dev and Test
Blogのテンプレ編集ソフト2 TmplEditor
http://www.witha.jp/blog/archives/2004/08/blog2_tmpledito.html

鯖コップ
Blogのテンプレ編集ソフト TmplEditorをFC2用に
http://sabacop.blog6.fc2.com/blog-entry-49.html

この記事探してあちこちうろついてしまいましたです……
あとで編集しようっと。

|

MTカスタマイズ、その3。

いろいろ試行錯誤していましたが、いい方法を思いつきません>リンク方法

いっそのこと、メインの部分(本文が表示される辺り)に持ってくればいいのかなぁ……

あと、著作一覧の表示。
iframeかませて、CGIか何かで更新しやすくするとか。
……ブログ形式の意味ないってばw

どういう風に構成するか、あちこち見て勉強しなきゃですな。

------

もー面倒…… お手上げだーい。 ⊂⌒~⊃。Д。)⊃

ひとまず、日記系ブログの更新情報とかはMyBloglist、著作等はBlogPeopleで一覧作成。
そこで生成したタグをサイドバーに組み込む実験中です。
(……でも更新が遅いような……>MyBlogList)

内部コンテンツへは、<$MTBlogDescription$>に組み込んでしまうことにしました。
もちろん、メインページやアーカイブページのレイアウト変更です。

あと、文字の大きさなどをスタイルシートで調整しなきゃなぁ。

|

MTカスタマイズ、その2。

今やりたいのは、外部リンクをサイドバー表示すること。
テンプレにタグで直に書いてしまえばいいんですが、それだといちいち変更するのが面倒……

外部ファイルを読み込めないかなぁと思って検索してみましたが、リンク集をPHPで記述して、インクルードする方法を発見。
リンクが増えたときも、リンク集を編集してアップロードし直せばいいというわけで。


……でも、今借りているサーバのプランじゃPHP使えないじゃんか……orz

というわけで、結局テンプレートにタグ打ちという形になりそうです。へふ。

|

MTカスタマイズ、その1。

MovableTypeを設置したのはいいんだけど、なかなかカスタマイズするまでには至りません。
テンプレートを改造しなきゃですが、どーも脳味噌が追いつかない……

公開されているフリーのテンプレートとかを使ってもいいんですがね。
どーもそれでは芸がないようなw

というわけで、あちこち彷徨いながらお勉強中。
中でもここが面白いや~と思って読んでいたら、Cheebowさんのところではありませんか!

MovableTypeで行こう!
http://cheebow.sub.jp/docmt/

お仕事で使っているアウトラインプロセッサもcheebowさん開発のもの。
うむぅ、頭が下がる思いです。

|