2016-08-30 23 views
0

ユーザーのIPを追跡し、特定のユーザーが自分のWebサイトにアクセスするのを制限したいとします。メテオでIPトラックツールをインストールするには、最速/最速/最も経済的な方法は何ですか?

私の頭の上では、おそらくサーバー上のMeteorメソッドを使ってthis.connection.clientAddressのようなものを呼び出し、ユーザーのIPアドレスにアクセスし、そのIPアドレスをMongoDBドキュメントに格納することができます。次に、各訪問者のIPを既存の禁止IPと照らし合わせてチェックし、それに応じてアクセスを制限します。

しかし私の考えることは、数万のIDを取得した後、一人のユーザーごとにMongoDBドキュメントにアクセスしてアクセスする必要があると、これはコストがかかり、処理が遅くなるということです。

MongoDBを絶えず呼び出すことなくこれを行うには、より良い方法がありますか?

答えて

0

誰かがAccounts.onLogin経由でログインしたときにIPアドレスを確認し、それに従ってユーザのドキュメントを更新することができます。

+0

私は厳密に非ユーザについて話しています。 OPで混乱して申し訳ありません。 –

0

IPのリストを更新する頻度によっては、別のURLで静的ファイルを使用して、IPのリストを取得してサーバー上にキャッシュすることができます。

たとえば、AWSのS3バケット(https://mybucket.s3.amazonaws.com/restricted-ips.json)にファイルを作成します。アプリケーションにアクセスすると、このファイルを取得してサーバー上にキャッシュし(必要に応じて一定時間)、そのリストに対してクライアントのIPをチェックすることができます。制限付きIPリストからIPを追加または削除する場合は、ファイルを更新するだけで済みます。キャッシュの有効期限が切れた後、アプリケーションのインスタンスに更新リストが送られます。

もちろん、このリストがあまり更新されない場合は、アプリケーション自体に書き込むこともできます。ただし、IPリストを更新する必要があるときはいつでも、再展開する必要があります。

関連する問題