5

私はDjangoを初めて使用しますが、投票を作成するためにDjangoWebサイトのチュートリアルに取り組んでいます。

ゲスト(登録/ログインなし)が投票に一度だけ投票できるようにするための最良の方法は何ですか?

  • IP(ネットワークを共有している人は一度しか投票できないため、IPは必要ありません)。
  • Cookie(ユーザーはCookieを削除できますが、最善の方法のようです)。
  • セッション(ユーザーがブラウザを閉じると、セッションが変更されます)。

Cookieが最善のアプローチだと思いますが、Djangoにもっと良い方法はありますか?

4

2 に答える 2

7

使用するサーバーフレームワークに依存しないソリューションが1つあります。

Evercookieは、事実上取り消せないCookieを提供します。そのレベルのデータ永続性が必要な場合は、これらを使用してください。

Evercookieは、Cookieやその他のさまざまな場所(Flashの「cookie」で使用されるメモリ、HTML5のLocalStorageなど)にデータを保存するためのソリューションです。これらの場所のいずれかがクリアされた場合、サイトに次回アクセスすると、データが再度入力されます。必要なのは、Evercookieが使用する13の場所のいずれかに保存されているデータだけで、次回の訪問で他の12の場所にデータが再び入力されます。

このようなCookieを取り除くのはかなり難しいので、ユーザーが実際にその方法で追跡されることに同意するかどうかを考慮に入れてください。それらのいくつかは確かに同意しないでしょう。

于 2012-06-15T23:06:21.687 に答える
1

投票できるのが1回だけであることが重要な場合は、とにかく基本的な登録/ログインシステムを作成することを検討してください。ゲストはいつでも複数のコンピューターを使用して投票を歪めることができますが、アカウント登録により、少なくとも投票に使用されている電子メールアドレスを追跡できます。また、そのように投票を歪めるには、もう少し手間がかかります。それが重要であるが命を救うことの重要性ではない場合、私は匿名のゲストにクッキーのアプローチを使用します。

于 2012-06-16T11:37:17.603 に答える