各ユニークビジターに一度だけ機能を提供する
質問
最初のASP.NETプロジェクトとしてメッセージボードを作成しました。今のところうまくいくようです。ただし、私が持っている機能の1つは、各メッセージにスパムの評価があることです。これは単に、視聴者がメッセージをスパムとしてマークした回数をメッセージが表示された合計回数で割ったものです。ユーザーがスパム評価の高いメッセージを無視することを選択した場合、それを無視できるようにするという考え方です。
ただし、スパマーが自分のメッセージを表示し、それを何度も更新するだけで、システム全体が妨害される可能性があります。これにより、メッセージが表示される回数が増えます。また、大量のメッセージを迷惑メールとしてマークした人が、何回も続けて阻止することもできます。特定の訪問者が特定のメッセージを既に表示したかどうかを判断する方法、および特定のユーザーが特定のメッセージをスパムとして既にマークしているかどうかを判断する方法が必要です。
登録を必要としない-誰でもメッセージを表示または投稿できるようにしたい。私が考えていた2つのアイデアは、訪問者がサイトにアクセスして追跡できるようにCookieを設定するか、ユーザーがメッセージを表示したりスパムとしてマークしたときにユーザーのIPアドレスを記録する新しいデータテーブルを作成することです。他の誰かがより良い方法を考えることができますか? .NETには、訪問者が初めてページを表示しているかどうかを判断するのに役立つ組み込み機能がありますか?
解決
最も信頼できる手段はIPアドレスのフィルタリングです。スパマーは、独自のプログラムを作成してページを要求することにより、他の方法を回避できます。 NATの背後にあるクライアントに影響を与えますが、スパムフィルタリングの目的では、かなり問題なく動作します。
他のヒント
ASP.Netには、 Personalization
と呼ばれる組み込み機能があり、通常の「登録済み」のほかに匿名ユーザーを検出して記憶するために使用できます。ユーザー。
匿名ユーザーにはIPを使用します。これは、特に一部のインターネットプロバイダーに誤検知をもたらしますが、シナリオでは適切なトレードオフのように見えます。 また、ユーザーが簡単に識別できるようにします。これを行うには、オープンIDが最適です。