5

私のサイトで認証されていない投票を許可するための疑似コードまたはホワイトボードの提案が欲しい. このトピックに関する関連スレッドを調べましたが、私のシナリオは独自のスレッドを保証するのに十分に異なっていると思います.

サポートしたい3 つのコア シナリオがあります。

1) 認証されたユーザー「Joe Blow」が私のサイトにログインし、投票します。彼は認証されているため、一度しか投票できません。彼が投票するたびに、彼の UserId を DB に保存します

2) 認証されていないユーザー「Sally」が私のサイトにアクセスし、投票します。彼女は認証されていないので、「Anonymous-Users-From-My-Site」というユーザー アカウントで彼女の投票を保存します。

3) 認証されていないユーザー「Zoltan」が、私が作成したウィジェットを使用して、私のウィジェットをホストしている他のパートナー サイトから私のサイトにアクセスします。彼はそのサイトから投票することもできます。彼の投票は、"Anonymous-Users-From-A-Partner-Site" というパートナー ユーザー アカウントに保存します。

ここでのひねりは、"Sally" と "Zoltan" が無制限に投票できる機能をサポートする必要があるということです。サリーは 1 日に 500 の項目に投票したいと考えているかもしれません。たぶん、Zoltan はパートナー サイトで 200 の項目に投票したいと考えています。おそらく、サリーは 1 か月間サイトを再訪問せず、その後また戻ってきて別の項目に投票します。

Cookie を使用してシナリオ 2 と 3 を実現するにはどうすればよいですか? 投票のすべてのアイテム ID を一緒にハッシュしますか? 私のオプションは何ですか?

FWIW: 票を集計する際に、厳密に区別する予定です。匿名の投票は匿名であることを明確にします。人々は、結果を見るときにある程度の懐疑論を使用することを理解するでしょう. しかし、認証されていないユーザーが複数のブラウザーを使用したり、投票ごとに Cookie を削除したりしてシステムを操作できるとしても、認証されていないユーザーが投票できるようにすることには価値があると思います。私のサイトで投票するユーザーが少なくともこれを行う必要がある場合、私は満足します.

最後に、EverCookie のようなものを使用することに興味はありません。私のニーズでは、それは完全にやり過ぎです。

4

2 に答える 2

1

SO と同様のことを行います。ユーザーがサイトにアクセスしたら、一意の ID を付与し、その ID を永続的な Cookie に保存します。個人が完全に登録した場合、その生成された ID をアカウント名に関連付けることができます。ブラウザが適切な Cookie を自動的に提示するため、ユーザーがサイトにアクセスする方法は問題ではありません。

時間の経過とともにデータ量がかなり大きくなる可能性があり、とにかくサーバー側で投票を追跡する必要があるため (使用状況/悪用を追跡できるようにするため)、Cookie でデータをシリアル化することは避けます。

于 2011-03-14T02:47:49.840 に答える
1

個人的には、認証されていないエントリを SINGLE ユーザーに対してひとまとめにすることはしません...代わりに、認証されていない応答のテーブルを作成します。ある人が初めて投票するとき、そのテーブルに挿入し、自動キー (ID) をその人の Cookie に保存します。彼がクッキーを削除したとしても...誰が気にします. しかし、これですべてのニーズが解決するはずです。

このように、コンマ区切りの「投票」を解析してロジックを「偽造」しようとしているのではなく、通常のユーザーであるふりをして DB にアクセスして投票を引き出すだけです。

于 2011-03-14T02:47:51.393 に答える