vote3 改 horobi.com edition by (滅) 改訂履歴 2005-05-19: version 3.3.4 - [項題の正規化] 項題に余分な空白を含む投票によって集計結果の項題が 置き換わる問題に対処。(vote.cgi, ivote.cgi) - [ホスト規制:投票] ホスト・ドメインで投票を規制する機能を追加 (vote.cgi, ivote.cgi, prei.cgi)。banned_hosts.txt の書式を 拡張して、箱作成の規制か投票の規制かを指定できるようにした。 banned_hosts.txt ではホスト名等に続けて空白で区切ってレベルを 記述する。レベル 0 で箱作成規制、レベル 1 で投票規制。 例: ------------ foo.com 1 bar.org 0 baz.net ------------ この例では foo.com からは箱作成も投票も不可。bar.org, baz.net から は箱作成は不可だが投票は可。 - [ホスト規制:箱作成] デフォルトのホスト規制チェック関数がホスト名、 ドメイン名で規制できない場合がある問題を fix. (config.cgi) config.cgi の is_banned_hosts() でドメイン名の比較で大文字小文字を 区別しないようにした。 - [連投規制] 直前の投票が違う内容でもそれ以前に同じ内容の投票があれば 連投と見なすオプションを追加(vote.cgi, ivote.cgi, config.cgi)。 config.cgi で $check_interleave_shooting を 1 にすると機能する。 - [NGワード] NGワードを含む投票のログを記録する機能を実験的に追加 (prei.cgi, vote.cgi, ivote.cgi, config.cgi)。デフォルトでは off。 利用法はソースを参照。 2004-09-04: version 3.3.3 - [最大投票数] 最大投票数を越えて投票できなくする機能を追加(vote.cgi, ivote.cgi)。vote_config (config.cgi) で $stop_at_max を 1 に設定すると 最大投票数を越えた投票でエラーになる。 vote3 系では最大投票数を越えても投票は打ちきられず、古い票が消される 形で箱が存続するのが仕様。デフォルト($stop_at_max = 0)ではこの仕様で 動作する。 2004-08-24: - [最近の投票] 箱の先頭部分に「最近の投票」へのリンクを追加 (boxhtml.cgi)。 2004-08-24: version 3.3.2 - [セキュリティfix] 特殊なパラメータを使って不正な投票ができてしまう バグを fix (prei.cgi)。 2003-12-20: version 3.2.2 の fix に一部漏れがあったのを修正。 3.3.x への移行が不安なら prei.cgi のみ入れ替えでも対処可能です。 thanx > cizz さん 2004-08-18: version 3.3.1 - [リードオンリーモード] 箱作成及び投票を停止するモードを追加 (vote.cgi, ivote.cgi)。 config.cgi の $read_only_mode を 1 に設定すると新規箱作成停止。 2 に設定すると箱作成及び投票を停止。$read_only_message に、 リードオンリーモードでエラーになった時の表示メッセージを設定。 - [リードオンリーモード] リードオンリーモード時に投票フォームを 表示しないようにした(list.cgi, vote.cgi, ilist.cgi, ivote.cgi)。 - [iモードとか対応] 箱リスト表示と項目一覧表示でページ選択リンクを 下部に移動(ilist.cgi, ivote.cgi)。箱/項目が多い場合操作性に問題が あったため。 - [iモードとか対応] 項目一覧で同じ順位の項目が順不同に表示されるため それらの項目が複数ページにまたがる時に表示されない項目が出てくる 可能性があるというバグを fix. 同じ順位では文字列比較でソートする ようにした。 - [iモードとか対応] 「最近の投票」の表示を変更(ivote.cgi)。箱コメント を表示しないようにした。箱表示では最近の投票のリンクが箱コメントの 下にあるため、改めて箱コメントを表示するのは無駄と判断。また、箱に 戻るリンクとリストに戻りリンクを追加した。 - [iモードとか対応] 余分なタグ(ivote.cgi の )、タグの閉じ忘れ (ilist.cgi の
)を修正。 - [iモードとか対応] パラメータ chg が on の時、箱リスト表示の改行が 不自然になるバグを fix (list.cgi). thanx > 要望箱 (4月03日(土)11時50分40秒) さん - [raw list] rawlist.cgi でパラメータ h が 0 の時全箱リストが表示 されないバグを fix (rawlist.cgi). thanx > 要望箱 (11月15日(土)16時08分29秒) さん 2004-07-06: - [不死身の箱] 特定の箱について削除不可能に設定する機能を追加(prei.cgi)。 config.cgi の @permanent_boxes に消したくない箱番号のリストを設定。 設定された箱は寿命を迎えても自動削除されない。管理モードでも消せない ので消したい場合は config.cgi の再設定が必要。 2004-04-07: - [link.txt更新] 最新の内容に更新(link.txt)。 2004-01-09: - [iモードとか対応] 票コメントの改行位置が不自然になるバグを fix (ivote.cgi). 2004-01-09: version 3.3.0 - [iモードとか対応] ilist.cgi, ivote.cgi を標準配布に。 - [箱HTML描画ルーチンの分離] vote.cgi から箱HTML描画ルーチンを切り出して boxhtml.cgi に分離した(vote.cgi, ivote.cgi, boxhtml.cgi)。 boxhtml.cgi に移動したサブルーチンは print_a_chat, print_a_vote, resulthtml の三つ。サブルーチンの移動だけでコード内容の変更はない。 箱描画をカスタマイズしているサイトでも同じ方法で移行できるはず。 PC/iモードとか 共用のアンケートサイトでは ivote.cgi でも箱HTMLの描画を PC用と同じルーチンで処理しなければならない($cache_mode が off なら不要) ため、箱HTML描画ルーチンを共用できるように分離した。 - [link.txt更新] 最新の内容に更新(link.txt)。 2004-01-06: - [perl 5.8 で動かないバグfix] 演算子 eq を EQ と書くと perl 5.8 では エラーになるので書き換えた(list.cgi, vote.cgi, ilist.cgi, ivote.cgi)。 2003-12-28: - [試験実装][iモードとか対応] iモードなどの携帯端末用の画面を生成する cgi を試験的に実装。タグや文言の調整、フォームの分割、集計表示や 項一覧表示などでのページ分割表示、などを実装(ilist.cgi, ivote.cgi)。 同じサイトで通常の cgi と併用可能(...はずです)。 - [HTTPヘッダ出力のバグfix] $cache_mode がoff の場合、箱集計表示で不正な HTTP レスポンスヘッダ(Content-type: text; charset=Shift_JIS/html)を 出力していたバグを fix (vote.cgi)。 thanx > 要望箱 (12月26日(金)16時03分58秒) さん - [よそアンリンク] link.txt に #! で始まるコメント行を付けるとその部分に コメントの内容を展開する機能を拡張(list.cgi)。
を書いて改行するなど。 2003-12-20: version 3.2.2 - [セキュリティfix] 特殊なパラメータを使って不正な投票ができてしまう バグを fix (prei.cgi)。 このバグを利用すると以下のような不正行為ができた。 - 禁止されている文字参照、実体参照の使用 - 日付表示の改変 - ログに記録されるIPアドレスの改変(箱作成時のみ) thanx > 要望箱 [preiのパラメータ抽出辺りのバグ] 項のみなさん 2003-11-09: version 3.2.1 - [串機能チェック] 公開串規制機能にポート接続だけでなく串として機能 するかどうかまでチェックするオプションを追加(prei.cgi)。config.cgi で以下を設定する。 $check_proxy_function: 1 なら機能チェックを実行 $url_for_proxy_check: 機能チェック時にアクセスするURL(絶対URL) これは一部のルータやソフトウェアファイアーウオールを使用していると 串を使っていないのに箱が作れなくなるという問題に対処するもの。問題 の発生するルータ等ではアクセスを遮断する設定にした場合でもポートが 開いているためポート接続テストだけでは串と認識されてしまう。 なお、機能チェックを有効にする場合は $port_check_timeout を大きめ に設定しないと串の見逃し確率が増える。3秒以上を推薦するが、CGI設置 環境によってはCGI実行時間の制限で処理を完了できない可能性がある。 - [公開串規制] 公開串をチェックで串ではなく転送元のアドレスをチェッ クしにいってしまうことがある(漏れ串の場合)バグを修正(prei.cgi)。転 送元がプライベートアドレスだと箱作成に時間がかかるという症状の原因 になっていた。ホスティング環境によっては串誤認の可能性も。 - [proxy_check.cgi] デバッグ用に検出したポート番号などの情報を表示す るようにした(prei.cgi 側にも修正あり)。 2003-10-12: version 3.2 - [raw list] 生ログに近いテキスト形式で箱リストを取得するための rawlist.cgi を新規作成。例えば、 http://www.horobi.com/vote3/rawlist.cgi?h=2 で 2 日以内に更新された箱リストが得られる。 - [串規制機能] プロクシ経由の箱作成を規制できるようにした。 詳細は次項以降に。以下のコードを変更(config.cgi除く) prei.cgi: 変更: winit 追加: proxy_status, is_open_proxy, is_port_open vote.cgi: 変更: readlog, writelog, make, wspeed, deletevote 追加: load_banned_hosts list.cgi: 変更なし - [公開串規制] 串規制機能の一部で、公開串(外部から接続可能なプロクシ) からの箱作成を規制する機能。config.cgi で以下を設定する。 $ban_open_proxy: 1 なら公開串からの箱作成を禁止 $port_check_timeout: 公開串チェックのタイムアウトの秒数を指定 @proxy_ports: 公開串チェックの対象となるポートのリスト クライアント側の環境によって閉じているポートに接続を試みたときに即 エラーを返してくれない場合がある。そのため $port_check_timeout 秒 以内に接続が確立しない場合はポートは閉じているとみなす。そのためタ イムアウトをあまり短くすると検出漏れが発生することがある。 しかしこのチェックは @proxy_ports に設定されたポートの数だけ繰り返 されるのでタイムアウトを大きくしすぎないように(2秒くらいがよい?)。 公開串かどうかは proxy_check.cgi で箱を作らずにチェックできる。 - [偽装串規制] 串規制機能の一部で、漏れ串からの箱作成速度を規制する 機能。漏れ串は本来規制対象にすべきではないが、漏れ串と区別のつかな い特殊な串による攻撃を予防するため。config.cgi で以下を設定する。 $xhakosokudo: 同一漏れ串から24時間内に作れる箱の最大数 $xhakosokudo は $hakosokudo と同じか、それより少し多めに設定する (企業内などに複数の利用者がいる場合があるため)。 - [ホスト規制] 串規制機能の一部で、特定のホストからの箱作成を禁止する 機能。config.cgi で以下を設定する。 $banned_hosts: 箱作成禁止ホストリストのファイル名 is_anonymous_proxy(): 匿名串判定ルーチン is_banned_hosts(): 禁止ホスト判定ルーチン $banned_hosts はホスト名またはIPアドレスまたはドメイン名を一行に一 つずつ並べたファイル。is_anonymous_proxy() はデフォルトの匿名串判 定では検出できないホストについてもホスト名などを基準に匿名串とみな す場合は適切にカスタマイズする。 - [匿名串規制] 串規制機能の一部で、匿名串からの投票速度を制限する機能。 config.cgi で以下を設定する。 $xwspeedcou: 同一匿名串からの速度違反の書き込み数 is_anonymous_proxy(): 匿名串判定ルーチン 串を使った大量投票を抑制するためのもの。匿名串かどうかの判定には is_anonymous_proxy() を使用する。 2003-08-28: version 3.1.5 - リスト表示で が になっていたバグを修正。 - [よそアンリンク] title 属性にフルネームを設定するように。カーソル を上にもっていくとツールチップで表示される(IE,Mozilla等)。 link.txt にフルネームのフィールドを追加。 2003-08-26: - [書き込み禁止機能] 特定の箱を書き込み禁止にする機能を追加。 config.cgi で @stop_boxes に書き込み禁止した箱番号のリストを設定。 2003-07-29: - [高速箱作成防止機能] 高速に箱作成を行うと同じタイトルの箱が複数作 成できてしまう問題を修正。ロックファイル(boxlock.txt)を使用して箱 作成の平行実行を防止。 - [よそアンリンク] 自ニュ対応(不便なのでコメント表示を強制) 2002-12-03: version 3.1.4 - [二重書き込み禁止機能] 無効票の禁止機能が効いてないバグを修正。 thanx > 自アン+一時停止のお知らせ/【箱内】vote改造相談項 のみなさん - [IP暗号化] 暗号化で情報が落ちるバグを修正。 2002-09-08: version 3.1.3 - [項目リンク] 最近の投票から項目一覧を開けるように。 2002-05-18: version 3.1.2 - [自動バックアップ] 削除された箱をゴミ箱ディレクトリに残す機能を追加。 2002-05-17: version 3.1.1 - 項カウンタが消えないバグを fix (vote4からのバックポート)。 - よそアンリンク機能の手アン対応。 - CGI側での文字化け対応(Content-type の charset 指定)。 2002-05-15: version 3.1.0 - 管理を容易にするために設定ファイルを別(config.cgi)に。 - [お知らせ] リスト表示にお知らせを表示する機能を追加。 - [よそアンリンク] リスト表示にvote2互換の他のアンケートサイト へのリンクを表示する機能を追加。 2002-02-26: patch level 3 - [箱検索機能] 箱リスト表示にキーワードとNGワードによる箱絞り込み 表示機能を追加。 2002-02-13: patch level 2 - PRE投票時にコメントなしで投稿できてしまうバグを fix 。 - htmlを作らない版パッチをマージ(モード切り替え可。デフォルトは htmlを作るモード)。 (thanx > MyChatTan) 2002-02-08: patch level 1a - patch level 1 で表示がおかしくなるバグを修正。 2002-02-08: patch level 1 - [PRE対応] 項コメントを pre 形式(固定幅フォント、行折り返しなし) で投票できる機能を追加。 - HEAD タグのバグ fix。