「Child Tree BBS(RSS/SPAM 対応版)」をVer.UP (v8.94R4)

@niftyではv8.94R3が動かないという報告を受けた。
どうもPerl5の標準ライブラリが使えないそうで(何でや)。
ちょっと思う所もあったので、標準ライブラリ無しでも動くように直してみました。
合わせてSPAM対策機能とかメール送信関連とか、気になっていた部分にも手を加えました。
ダウンロードは「オンラインソフトの間」からどうぞ。


標準ライブラリを使っているのはRSSフィード機能とSPAM対策の一部機能。
RSSフィードの方はとりあえずエンコーディングをEUC-JPでも出力できるようにすれば特に問題無し。
問題はSPAM対策の方である。
入力フォームを使った投稿である事を確認するため、暗号化で生成したキーコードを利用しているのだが、標準ライブラリが使えなくともMD5方式のcrypt関数が使える環境ならそれを使うようにした。
しかしDES方式だと元文字列が8文字までしか許容していないため、これにしか対応していない環境ではどうしようもない。
仕方ないのでその場合はキーコードの処理は無効化するようにした。
あとこの機能を追加した時から気にはなってたが、今回あらためて考えてみたら、やっぱりこの方式はあまり意味が無い。
暗号化の元になる文字列と、対応するキーコードがそのままベタに埋め込まれているので、ぶっちゃけ1回入力フォーム画面のソース覗いて、このキーコードの記述部分を1行コピーして(その掲示板内では)使い回す事ができる・・・orz
やっぱりMovableTypeの方で採用してる方法のように、プレビュー画面を介する方式じゃないとダメだ。
が、cbbsの場合プレビュー画面に書き直し用の入力フォームが共存してる上にsubmitボタンがまた同じ<form></form>内にあるため処理の切り分けが難しい、入力フォーム画面とプレビュー画面とに分けるとかすると修正が凄い面倒だしなぁ・・・・と前回は悩んで、結局あの方式でお茶を濁した訳です。
が、今回ちょっと思いついた事を試してみたところ、それが有効だったので割とあっさり解決。
submitボタンにname属性指定すれば、それでどのボタンが押されたか判別付くんですねぇ。今まで気付きませんでした。アハハ(^^;)

コメント

コメントする