2016-08-02 2 views
0

フォームベースの認証を持つWebアプリケーションがあります。 アプリケーションには登録機能もあります。最後の数週間以来、特定のドメインのユーザーがウェブサイトに偽のエントリを作成していて、承認ワークフローがないため、メリットを得ていることがわかりました。 このユーザーは手動で行うか、スクリプトを実行します。私たちは、IPベースの登録プロセスを制限することができると考えていましたが、訪問者がC#を使用して正確なIPアドレスを取得することはできません(間違っていれば修正してください)。 他の技術を使ってもかまいませんか?私たちの要件は - 2日間のマシンからの単一の登録です。マシンの登録を制限するC#

+0

私は残念なことに解決策はありませんが、私はIPアドレスで行くことをお勧めしません。 IPアドレスを取得できたとしても、プロキシを使用してIPを偽装することができます。多くの人々が電気通信を利用しています。たとえば、電話番号を登録して確認する必要があります。電話番号を偽るのは難しいです。 –

+0

私たちはクッキーを使用すべきですが、その場合、ユーザーはクッキーを削除して何度も登録することができます – Anurag

答えて

0

残念ながら私はこの使命を不可能と呼んでいます。

アイデア1:IPアドレス。ユーザは、プロキシをどれだけ多くのプロキシを見つけることができるか(インターネット上に束縛されている)に応じて、複数のアカウントを登録することができます。彼らが必要とするのは登録することですので、確認メッセージが別のランダムな人に送られたかどうかは関係ありません。

アイデア2:マシンごとに1つ登録してください。私は仮想マシンで望むだけ多くのマシンを偽造することができ、あなたはhttp要求から通知する方法がありません。

代わりに、生のhttp要求ですべての情報を偽っても問題ありませんが、スクリプトでこれを行うことができます。

そして、私はあなたがjsファイルからハードウェアIDを読むために、システムの権利を持っていない知っているから(イム間違ったなら、私を修正)

ませ方法は、1日2登録を制限するために保証するものではありませんが、IPベースの方法で動作するはずですほとんどの通常のユーザーに対してあなたの制限があることでしょうどのようなHttpContextオブジェクト

0

内のユーザのIPアドレスを見つけることができ

同じルータを使用して、誰もが同じIP(たとえば、学校、マンションの公共無線LAN)を持つことができることを心に留めておくか - それはブラウザが送信するデータに基づいています(特定のコンピュータを制限している限り)。 あなたの主な望みは、そのマシン上で、後でリクエストごとに "フットプリント"を作成することです。

操作が何であれ、JSコードも難読化する必要があります。 たとえば、pageloadコードでは、そのマシン専用のhttpヘッダーを要求してキャッシュに保存し、登録するために使用すると思われるクライアントのguidを生成することができます。

別の方法として、AESを使用してデータを暗号化してから、「有線で」送信することができます。そうすることで、操作できなくなります。

最も重要なことは、クライアントにjsコードを「ドロップ」すると、彼が望むことは何でもできます。問題はどれほど難しいかです。

**編集: より安全な方法ですが、これまで使用していたより複雑なのは、同期キーを作成することです。 暗号化キーを要求するサーバーへの非同期ajax呼び出し。 サーバコールは新しいguid-keyをメモリに保存し、リクエストごとに新しいguid-keyを生成します。 このアイデアを使用して、ユーザーのデバッグとブラウザの動作を追跡できます。 デバッグは同期キーを実行しているコードを保持して変更され、あなたは彼を "キャッチ"することができます。

0

クッキーもIPも、偽のエントリから保護することはできません。

別の側から見てください。あなたは不要なエントリを取得し、自動化されたボット、スパマー、またはあなたのデータを気にしない人であるかどうかわかりません。エントリを禁止する代わりに、それらを検証する方法を考える必要があります。たとえば、名前として「aaaaa」、電子メールアドレスとして「bbbbb」を取得した場合、必要な形式でデータを取得できるように、少なくともクライアントとサーバー側でregexp検証を追加します。次のレベルは、メールサーバーを照会するか、検証電子メールを送信することによって電子メールアドレスを確認することです。これはスパマーを止めるのに役立つだけでなく、気にしない人たちも止めるのに役立ちます。それが自動ボットだと思えば、キャプチャを追加してください。緊急の場合 - web.configのIPを禁止する(ASP.Net How to limit access to a particular IP address to a particular page through web.config file (.htaccess similar)?を参照)

関連する問題