Djangoでのユーザートラッキング

Hello%username%



まず、特定のDjangoポータルを使用して、新しいユーザーを招待したことで特定のボーナスがユーザーに発生します。 このような紹介システム。 ただし、招待されたユーザーがアクティブな場合にのみ、ボーナスが発生します。 今日、ユーザーの一人がバーチャルを始めたのではないかと疑っていました。 これについて彼に有罪判決をしよう...



すべてのプロジェクトにコアアプリカがあり、あらゆる種類の有用なユーティリティを保持しています。 このアプリケーションでは、 middleware.pyファイルを作成します。



import logging import logging.handlers bytes=1024000 count=10 formatter = logging.Formatter("%(asctime)s-%(message)s") MODELS_FILE = '/home/ramovsky/users.log' logmodels = logging.getLogger('users') logmodels.setLevel(logging.DEBUG) handler = logging.handlers.RotatingFileHandler(MODELS_FILE, maxBytes=bytes, backupCount=count) handler.setFormatter(formatter) logmodels.addHandler(handler) class TrackUsersMiddleware(object): def process_request(self, request): ip = request.META.get('REMOTE_ADDR', '') or request.META.get('HTTP_X_FORWARDED_FOR', '') logmodels.debug('%s %s %s'%(request.user, request.path, ip))
      
      





ミドルウェアをsettings.pyに追加します



 MIDDLEWARE_CLASSES = ( #----- cut ----- 'core.middleware.TrackUsersMiddleware', )
      
      





また、ヘッダー生成「HTTP_X_FORWARDED_FOR」/etc/nginx/nginx.confに追加することを忘れないでください

location / {

#---- cut -----

fastcgi_param REMOTE_ADDR $remote_addr;

}







DjangoとNginxを再起動します。 ログgrep -E 'AnonymousUser | User1 | User2' users.logを調べて分析します。



一般に、ユーザーがインターネット技術にどれだけ精通しているか、ボーナスの大きさによって、イベントのいくつかのオプションが可能です。



Noobは現在のIPですべてを実行します。 そのような人を次のような記録に従って追跡するのは簡単です

2011-04-20 14:00:03,123-AnonymousUser /accounts/login/ 80.91.173.10

2011-04-20 14:00:22,967-User1

2011-04-20 14:00:22,967-User1 /logout/ 80.91.173.10

2011-04-20 14:01:03,123-AnonymousUser /accounts/login/ 80.91.173.10

2011-04-20 14:01:22,967-User2

2011-04-20 14:01:22,967-User2 /logout/ 80.91.173.10







すべてのアクションは、同じIPから、異なるユーザーに代わって順番に実行されます。



上級ユーザーは、動的IPまたはプロキシを使用して非表示にしようとします。

2011-04-20 14:00:03,123-AnonymousUser /accounts/login/ 18.11.173.10

2011-04-20 14:00:22,967-User1

2011-04-20 14:00:22,967-User1 /logout/ 18.11.173.10

2011-04-20 14:01:03,123-AnonymousUser /accounts/login/ 34.91.173.10

2011-04-20 14:01:22,967-User2

2011-04-20 14:01:22,967-User2 /logout/ 34.91.173.10







IPは異なりますが、疑似ユーザーのアクションは厳密にシーケンシャルです。



プログラマがタスクを引き受けた場合、プロキシを使用し、ユーザーアクティビティをエミュレートするスクリプトを記述すると、 プログラマがそれをキャッチするのは非常に困難になります。 深刻なケースでは、テクノロジーではなく心理学で作業する必要があります。 ボーナスを受け取りやすい人を与える必要があります。そうすれば、欲と免責に盲目にされ、警戒心を失い、スクリプトがログに特徴的な表示を持つようになります。



一般的に、私はすべての人が善良で正直なユーザーであることを願っています。 実際、まず第一に、彼らのために、私たちはポータルを書いています。



All Articles