投票CGI T-Vote P 説明書機能様々な設定が可能な投票システムです。「24時間に1票」というような投票制限を付けることができます。また、投票率がグラフで見やすく表示されるようになりました。 以下の特徴があります。
[目次へ] プログラム
[目次へ] インストール方法インストール
[目次へ] セキュリティー項目の設定・base_urlここの値を"$ENV{'HTTP_HOST'}$ENV{'SCRIPT_NAME'}";に設定すると、 他のURLのフォームによる外部投稿を排除します。 なお、フォーム以外のタグやJavaScriptを使用したGETメソッドによる外部投稿は この値を設定しなくても排除されます。 ・allow_url ここに入室を許可するURLを設定しておくと、 設定したURLを含むURLからのみ、入室と投稿を許可します。 他サイトからの入室とURLを直接入力しての入室は排除されます。 @allow_url = ('許可URL1','許可URL2'); というように '' の中にURLの一部を書き、 , で区切って増やします。 ここを設定する場合は必ず投票CGIの設置URLも許可されるようにしてください。 $check_proxyを2か3に設定している場合、 アドレスバーに直接URLを入力すると入室できてしまう場合があるので この機能を使用する場合は$check_proxyを2か3に設定しない方が良いです。 ・browse_check ここの値を 1 にすると、base_urlを設定した場合に browserで指定されたブラウザーに対しては他サイトからの投稿排除をしなくなります。 リファーラー変数を送らないブラウザーで排除される場合に指定します。 ・browser base_url,allow_urlを設定した場合に、Windows CE等リファーラー変数を送信しなくて、 排除されるブラウザーのユーザーエージェントの一部を設定します。 ・need_cookie ここの値を 1 にすると、cookieを無効にしている場合に投票を排除します。 cookieを無効にして再接続やプロキシを使って不正投票される場合に設定します。 ただしcookieは簡単に消去できるので、不正投票を完全に防げるわけではありません。 ・deny_cookie need_cookieを1に設定した場合、cookieを発行してからここの値の時間が経過するまで 投票禁止にします。 cookie消去による不正が行われたときの対策になります。 30分の場合は0.5と、小数点単位での設定も可能です。 ・禁止ワード:@taboo = ('〜'); 書きこまれたくない投票項目とコメントをここに記述すると、その言葉を含む投票項目とコメントを投稿できなくします。 他のその言葉を含む内容も排除されるので設定には注意してください。 @taboo = ('禁止ワード1','禁止ワード2','…'); というように '' の中に単語を書き、 , で区切って増やします。 投票項目とコメントから間の空白を削ってからチェックするので、 間には空白を入れないようにしてください。 ・禁止項目:@ng_item = ('〜'); 投票されたくない言葉をここに記述すると、その言葉を含む投票項目を投票できなくします。 コメントのみに含まれている場合は許可します。 対象外の項目など、項目の追加だけ拒否して、コメントの記述は許可する場合はこちらに記述します。 @ng_item = ('禁止ワード1','禁止ワード2','…'); というように '' の中に単語を書き、 , で区切って増やします。 ・アクセス規制:@check_ipad = (〜); イタズラをする人のIPからの投稿を排除します。 イタズラする人のIPアドレスかホスト名を記述することで、そのIPアドレスからの投稿はできなくなります。 ダイアルアップ等の場合はIPアドレスが毎回変ることがあります。 例) IP1A123.tky.host.ne.jp IP1A001.tky.host.ne.jp と変わる場合 その場合は先頭に*を付けてホスト名の変化する数字より後の部分を指定します。 @check_ipad = ('*tky.host.ne.jp'); ホスト名が獲得できなくてIPアドレスのみになる場合は 最初の3つだけを記入するようにします。 @check_ipad = ('123.456.789'); ・クッキーによるアクセス規制:@check_cokkie = (〜); イタズラをする人の端末IDを指定して、その人の投稿を排除します。 端末IDはログのホスト名の後に表示されるcid〜のことです。 イタズラする人の端末IDを記述することで、その端末IDを記憶している ブラウザからの投稿はできなくなります。 ただしクッキーを削除されると投稿できるようになります。 その場合check_ipadでIPアドレスを指定してallow_cookieでイタズラをしないのに 制限される人の端末IDを記述した方が良いでしょう。 ・匿名プロクシ制限:$check_proxy = n; 匿名プロクシを使って荒らし行為が行われる場合に設定します。 この匿名プロクシ制限と、上のIPアドレス制限でほとんどの荒らしを排除可能です。 ただし匿名プロクシによっては匿名プロクシ制限で排除できない場合があります。 その場合はcheck_ipadにその匿名プロクシのIPアドレスを設定します。 値の意味は以下の通りです。 0 … 匿名プロクシを制限しません。 1 … 匿名プロクシからの投稿を拒否します。 匿名プロクシチェックはCATVやイントラネット経由の環境等 プロクシ経由でなくてもプロクシとみなしてしまうことがあります。 この場合は後の許可IPアドレスにその人のホストかIPアドレスを設定することで 投稿を受け付けるようになります。 ロリポップ等一部のサーバーではプロキシ判定が上手く行かない場合があります。 この場合は後の$only_jpを2に設定することで、環境変数によるプロキシ判定を行わずに jpドメインでないホスト名をプロキシとみなします。 ドメインネームの取得ができるサーバであることが条件です。 ・ドメインのないIPを排除:$check_host = n; $check_proxyを0以外にした場合にここの値を 1 にすると、 プロキシによく使われるドメインネームの取得ができないIPを プロキシ経由とみなします。 一部のドメインネームの取得ができないプロバイダまで プロキシ経由とみなすので設定には注意してください。 HP領域がドメインネームの取得ができないサーバの場合は 全てプロキシ経由とみなすので0のままにしてください。 ・jpドメイン以外を排除:$only_jp = n; $check_proxyを0以外にした場合にここの値を 1 にすると、 プロキシによく使われるjpドメイン以外のホストをプロキシ経由とみなします。 Yahoo!BBやuu.net等jpドメインでないプロバイダまで プロキシ経由とみなすので設定には注意してください。 HP領域がドメインネームの取得ができないサーバの場合は 0のままにしてください。 ロリポップ等一部のサーバーではプロキシ判定が上手く行かない場合があります。 この場合はここの値を 2 に設定することで、環境変数によるプロキシ判定を行わずに jpドメインでないホスト名をプロキシとみなします。 ドメインネームの取得ができるサーバであることが条件です。 ・投稿許可IP:allow_ipad = (); ここに プロクシ経由でないのに投稿できなくなる方の IPアドレス/ホスト名を書いておくと、そのIP/ホストからの投稿を許可します。 記述の形式は@check_ipadと同じです。 ・投稿許可端末ID:allow_cookie = (); ここに プロクシ経由でなかったり、イタズラをしないのに制限される人の 端末IDを正確に記述しておくと、その端末IDからの投稿を許可します。 端末IDはログのホスト名の後に表示されるcid〜のことです。 また制限された場合には端末:cid〜と表示されますので、 メール等で表示された端末IDを知らせてもらうことが出来ます。 [目次へ] symlinkが使えないサーバーの場合symlink が使えないサーバーの場合以下の手順でtvot.cgiを変更する必要があります。
新しい投票イベントを作る
[目次へ] 投票イベントを追加する新しい投票を設置したい場合、イベント名を以前使ったのとは別のものにして(例えば、前にvote1を使っていたらvote2等)、 あとは新しい投票イベントを作ると同じようにやって下さい。[目次へ] 使い方管理ページへの移行管理ページから、項目の追加、修正、削除を行う「項目変更」、制限や順位表の配色を変更する「設定変更」、リモートホスト・クッキー付きでのログ・コメ ントの表示と削除を行う「ログ閲覧削除」の三つの作業ができます。管理ページへの移行方法は次の通り。
[目次へ] 管理:「項目変更」「管理用フォーム1:項目用」では、以下の作業をすることができます。(カッコ内)は必要な初期値。
※ 「項目名の修正」はできません。一度削除してから再度新規登録してください。 [目次へ] 管理:「設定変更」「管理用フォーム2:設定用」では、以下の設定をすることができます。(カッコ内)は初期値。
[目次へ] 管理:「ログ閲覧削除」「管理用フォーム3:ログ閲覧削除」では、以下の作業をすることができます。 ログ・コメントの削除 ... 削除したいログ・コメントのラジオボタンをチェックし、削除ボタンをクリックすると選択したログ・コメントを削除する。(同時に投稿されたログ・コ メントも削除されます)[目次へ] Note...データファイルを手動で編集する「管理ページからいちいち項目を追加するのは面倒だ」という場合、データファイルを自分で編集することができます。手順は以下の通り。(インストールは 完了しているものとします。)(※ [Tab] … タブ(キーボードの一番左の列の上の方の "Tab" を押せば入力されます。)
※ 既に運用が始まって票数が入っているものに関しても、上記の方法で票数をまとめて編集できます。 [目次へ] フォーム、順位表、コメント、ログの表示順を変更する方法テンプレート(.html)の下部を修正することによって、フォー ム、順位表、投票権情報、コメント、ログの表示順を変更することができます。以下の4つの#CHK:xxxxx#という行を、表示したい順 に並びかえて下さい。 テンプレートに書く文字と、その位置に表示されるものの関係は次の通り。
[目次へ] 「投票制限」でできること、できないこと。T-Vote P は「投票者が利用しているホスト(コンピュータ)のIPアドレス」と「投票者のブラウザが記憶しているクッキー」 を利用して投票制限をかけています。「IPアドレス」というのは簡単に言うと、インターネットに接続するマシンに与えられている固有のID番号の ようなものです(正確にはちょっと違うのですが)。しかし実際には、各個人の持つパソコン毎に一つずつIPアドレスがつけられているわけではありません。モデムを利用してプロバイダに 繋ぐダイヤルアップ接続の場合、プロバイダが管理しているIPアドレスの中で空いていたものが割り当てられます。従って、同 じマシンでも接続する度にIPアドレスが変わるということは十分ありえます。また逆に、同じサーバーを利用している全く別の人が(時間差で)同じIPアド レスを使う可能性もあります。 結論を言うと、IPアドレスを利用して(ダイヤルアップ接続を利用している)個人を特定することは厳密にはできません。
制限の限度いっぱいに投票した後で一度電話を切りクッキーを削除して、すぐに繋ぎなおして、(運良く?)割り当てられたさっきとは違うIPアドレスで再度
投票する、ということも考えられます。 ただし投票する人が減る可能性はあります。 しかし、IPアドレスは違っても、ホスト名は似通っている場合が多いです。
(tkrz15.provider.ne.jp
とかの、数字部分だけが変更される、とか。)「最近のログ」には投票者のホスト名が記録されますので、それを見れば連続投票があった場合は大体判断
がつきます。あとは票数を直すなり、該当する人に注意を促すなど、各自で対策を取ってください。 これとは逆に、学校や会社などにある、常に接続されているコンピュータには、固定のIPアドレスが割り当てられている 場合が多いです。この場合は、厳密な制限が可能です。さらに、Proxyサーバーを利用している環境では、相手の組織全体に対して制限がか かってしまうことがあります。 このように、T-Vote P の投票制限はあいまいなものです。この性能を理解しながらお使い下さるようお願いします。 荒らし行為をされた場合はセキュリティー項目の設定である
程度防ぐことはできます。 [目次へ] バージョン情報バージョン履歴2003/04/06Ver7.01 T-Vote Java Versionとして公開。 2003/05/18 Ver7.03J コメント必須の設定を追加。 Javaによる生IP所得モード時の外部投稿対策を強化。 外部URLからの投票制限を追加。 制限の表記を「一人あたり」に変更(IP変更すれば再投票しても良いと勘違いされないように) BIGLOBEのwww5〜サーバーへの対応のためアプレットをJAR形式に変更。 2003/09/23 Ver7.04J cookkie発行後、指定時間cookieなし扱いにする機能を追加(cookie消去対策)。 getメソッドによる投票の試みが行われたとき、データを読み込まないように変更 (JavaScript型連続投稿プログラム等によるデータ破壊対策)。 投票制限の初期値を比較的多く見れられる24時間1票に変更。 投票後に管理者モードに入れなくなる現象を修正。 2003/09/25 Ver7.05J cookkie必須の設定にした場合、cookkieが無効でも制限解除時刻が表示されるのを修正。 投票が拒否された場合(禁止ワード、字数制限、投票権オーバーを除く)、データを読み込まないように変更 2003/10/23 Ver7.06J コメントなしでも二重投稿チェックをするように変更(連続投稿プログラム対策)。 Java経由でなくてもタイムオーバーチェックするように変更。 管理者モードで制限時間を変更したとき制限リセット時刻が更新されないことがあるのを修正。 2003/11/02 Ver7.07J 投票権管理をcookkieとIPのうち投票数の多いほうで管理するように変更 禁止ワード、禁止項目の間に空白が入れられても拒否するように変更。 投票した後、指定時間投票禁止にする機能を追加。 チェックコードによる外部投稿対策を追加(荒らしツールの投稿をされにくく)。 2003/11/23 Ver7.08J 指定URL以外からの入室禁止機能を追加。 2003/12/21 Ver7.09J 端末IDによるアクセス規制・許可機能を追加。 拒否されたときにIPアドレスと端末IDを表示するように変更。 2004/02/15 Ver7.10J ダミーフォームによる連続投稿ツール投稿対策を追加。 (フェイザー型の連続投稿ツールの投稿をされにくく)。 2004/12/26 Ver7.11J コメント必須の設定を行っても、コメントなしで投票できるようになっていたのを修正。 一部の対策困難な連続投稿ツールからの投票と判断した場合、投票権をなくすように変更。 2013/01/18 Ver7.15P 管理画面からのログ・コメントの削除機能を追加。 ログ・コメントのホストとクッキを非表示にできるようにした(それに伴いログ・コメントの形式を変更)。 Javaの生IP抜きができなくなったので廃止(それに伴い名前をT-Vote Pに変更)。 禁止ワード、禁止項目が正常に機能しないため空白を削除してのチェックを廃止(空白がある場合でもそのまま記述するようにしてくださ い)。 ホスト名を獲得できるサーバーでもサーバーによって獲得できないのを修正。 ドキュメントをHTML形式に変更。 2016/11/03 Ver7.16P プロキシ判定が上手く行かないサーバー用にプロキシ判定せずに、 jpドメインでないホストのみをプロキシ経由とみなす設定を追加。 Ver7.15PのCGIスクリプトが壊れていたのを修正(^^;)。 [目次へ] T-Vote 7.xx、T-Vote Java Versionからのデータの引き継ぎT-Vote 7.xx、T-Vote Java Version からはそのままデータを引き継ぐことが可能です。方法は以下の通り。
引き継いだログ・コメントはホスト・クッキーの非表示は出来ません。 ログ・コメントは管理:「ログ閲覧削除」で引き継いだ分の表示が崩れます(T- Vote 7.xxのログの形式がHYML形式になっているため、完全に新しい形式に変換できないためです)。 [目次へ] T-Vote 6.xx からのデータの引き継ぎVer.6.xx からは票数データのみ引き継ぐことが可能です。方法は以下の通り。
※ 設定は初期値になっています。管理用フォームから適 時変更してください。 [目次へ] 利用規定
|
|