自分のサイトで投票があり、投票するために登録を要求したくなかったが、訪問するたびに1回だけ投票したい場合、どうすればよいでしょうか。
IP123.34.243.57からの訪問者がサイトにアクセスして投票したとします。それなら、123.34.243。*の人の投票を禁止しても安全でしょうか?これは良い戦略ですか?
もう一つは何ですか?
自分のサイトで投票があり、投票するために登録を要求したくなかったが、訪問するたびに1回だけ投票したい場合、どうすればよいでしょうか。
IP123.34.243.57からの訪問者がサイトにアクセスして投票したとします。それなら、123.34.243。*の人の投票を禁止しても安全でしょうか?これは良い戦略ですか?
もう一つは何ですか?
これはインターネット上のすべての投票サイトにとって根本的な課題であり、問題の表面を壊しているだけです。
あなたの言い方では、「1回の訪問を1回だけ許可したい」ということは、ブラウザを開いてサイトにアクセスするたびに1回だけ投票できるようにすることを意味します。これは本当にあなたが求めているものではないと思います。
あなたが望んでいるのは、特定の個人が一度だけ投票できることだと思います(調査ごとに、多分)。
問題は、質問を適切に組み立てると、問題がはるかに明確になることです。インターネットノード(IPアドレス)、アクセス(セッションCookie)、ブラウザインスタンス(永続的なCookie)、またはコンピュータ(識別も困難)を識別しようとしているのではありません。
あなたはクッキーでテクニックを使うことができます、そしてそれらは典型的なユーザーに適していました。この手法を覆すのは、次のように簡単です。-ブラウザでCookieをクリアする、-ブラウザでCookieを禁止する、-別のブラウザを開く、-別のコンピュータに移動する、-アノニマイザーを使用する、-...他にも無限の方法。
メールアドレスで確認できますが、登録したくないとのことでしたので、それでも問題は解決しないと思います。
投票システムの一意のユーザーを本当に識別する必要がある場合は、特定のユーザーのIDを保証する権限を持っているか、信頼できるプラットフォームからのみソフトウェアにアクセスできるようにする必要があります。
最初の手法では、登録が必要です(多くの場合、登録には費用と時間がかかります)。これにより、個人の実際の正式な名前と場所が確認されます。次に、公開鍵インフラストラクチャ(別名デジタル証明書)を使用して、提供された資格情報に基づいて個人を識別できます。
トラステッドプラットフォームを必要とする2番目の手法は、特定の事前定義された動作に従うハードウェアに依存します。たとえば、XBox360またはiPhoneで機能する投票サイトを作成できます。これらのデバイスの1つにインストールされるアプリを作成します。プラットフォームの保護方法に基づいて、XBox360のハードウェアアドレスやLiveID、iPhoneのハードウェアアドレスや電話番号などの一意性特性を使用して、ユーザーが同じユーザーであるという一般的な保証を得ることができます。以前に訪問したことがあります。トラステッドプラットフォームの性質上、アプリケーションを制御でき、ユーザーは特に制御できないため、ほとんどのユーザーがアプリケーションの意図を覆すことはできないという合理的な保証があります。
これはあなたがそれを行うことができるという長い言い方だと思いますが、それを解決するのは簡単な問題とはほど遠いです。
政治選挙と、それらを公正で匿名にするためにどれだけの資源とエネルギーが費やされているかを考えてみてください。それでも、それは非常に困難な問題です。
これにパブリックIPを使用することは、おそらく悪い考えです。このアプローチを使用すると、同じ企業LANからの一意の訪問者はすべて1人のユーザーのように見えます。
おそらくクッキー?それがほとんどのサイトで使われていることだと思います。
自動または手動で、ある種の監視と組み合わせます(たとえば、ログファイル分析)。スクリプトを示すトラフィックパターンに疑いを持ってください。
いいえ、IPアドレスまたはIPスパンを使用して一意のユーザーを識別することはできません。いくつかの理由で:
誰が投票したかを示すためにCookieを使用できます。盲目的にヒットしないので、それははるかに良いでしょうが、人々がクッキーをクリアして複数のブラウザで閲覧できるので、もちろん完全に正確ではありません。
ユーザーを完全に正確に識別して、誰も2回以上投票しないことを確実にするには、ユーザーのログインが必要です。もちろん、人々が複数のアカウントを作成できるという事実を除いて...
IP範囲をブロックすることは良い戦略ではありません。すでに投票されたユーザー、そのIPとCookieを識別するための2つのオプションがあります。彼らが投票した後、クッキーを設定し、彼らが再び投票することを許可しないでください。
彼らはクッキーをクリアしてIPを変更することができますが、匿名の投票には受け入れられます。より良い戦略が必要な場合は、投票に登録しましょう。
IP範囲全体ではなく、その特定のIPだけをブロックする必要があります。
登録がない場合、これが最善の解決策ですが、ユーザーには適していません。
誰かが複数回投票するのを防ぐことができます。ただし、他のユーザーの投票をブロックすることもできます。これはNATが原因です。
ネットワークアドレス変換(またはNAT)を使用すると、複数のユーザーが1つのIPを使用してインターネットにアクセスできます。
ただし、NATはあまり使用されておらず、投票を許可されないユーザーはほとんどいないため、これは問題ありません。
ただし、Cookieは適切なソリューションではありません。ユーザーはブラウザのCookieを簡単に消去して、再度投票できるためです。さらに悪いことに、彼/彼女は何度も自動的に投票するためのスクリプトを書くことができます!