2017-10-10 6 views
1

私は現在、ウェブサイトの開発を手伝っています。この過去の週末の誰かがウェブサイトをハックしようとしましたが、失敗しました。しかし、サイト全体がこの昨年の夏に書き直されたため、サイト内での動きを保存して、ユーザーのIPを捕まえることはできませんでした。pythonとdjangoのログインを使ってウェブサイトとのやり取りを記録する

アクションの記録を確実にするために、ウェブサイト内でユーザーが行った操作(ユーザーがアクセスしたリンクなど)を追跡し、ファイル(ウェブサイトが小さい)に保存する方法はありますか?もし誰かが再びそれをハックしようとしたら?

私はこれを行うことができるかどうかを確認するために、私はロギングを使い始めましたが、ロギングを使ってユーザーのアクションをどのように記録するのかという問題が発生しました。私の設定は以下の通りですが、動作しています。ユーザの動きを記録するために現在logging.info()内の文字列の代わりに何を入れるべきか分かりません。あなたが提供できる任意のヘルプに事前に感謝します。ジャンゴで

from ipware.ip import get_ip 
import logging 

def IPCatcher(request): 
    ip = get_ip(request) 
if ip is not None: 
    print("We have an IP address for user") 
    print(ip) 
    logging.basicConfig(filename='log_recording.txt', 
         level=logging.DEBUG,format='%(asctime)s %(message)s', 
                  datefmt='%m/%d/%Y %I:%M:%S %p') 
    logging.info('This is working') 

else: 
    print("we don't have an IP address for user") 
+0

あなたはapacheまたはnginxを使用していますか? –

+0

今はセキュリティのためにApacheを使用していませんし、nginxについて考えていますが、現在どちらも使用していません。この状況ではnginxが助けますか? – scottyboy

答えて

1

ロギングが最初で、かなり困難なことができますが、ウェブの周りをよく読んでことはたくさんあります。概要を説明するために、logging in djangoを設定する最も簡単な方法は、ログを設定する場所のsettings.pyファイルから開始することです。アプリのラベル&と

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': '/path/to/django/debug.log', 
     }, 
     'mail_admins': { 
      'level': 'ERROR', 
      'class': 'django.utils.log.AdminEmailHandler', 
     } 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['file'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
     'my_app': { 
      'handlers': ['file'], 
      'level': 'DEBUG', 
      'propagate': True, 
     }, 
    }, 
} 

置き換えmy_appは、あなたのビューでのログコールがfileハンドラ(settings.ADMINSに電子メールを送信しますmail_adminsハンドラに注意してください)にログインします。

import logging 

from ipware.ip import get_ip 

# This gets a named logger, which should match your appname 
logger = logging.getLogger(__name__) 

def IPCatcher(request): 
    ip = get_ip(request) 
    if ip is not None: 
     logger.info('This is working') 

また、この件に関するチュートリアルをご覧になることをおすすめします。 https://www.youtube.com/watch?v=BsbtPqQdo3Q

+1

ありがとうございました! – scottyboy

+0

@scottyboy私も追加するつもりでしたが、あなたはApacheのログに似た回転ファイルを使うことができます。それをここで見てみましょう。 https://djangosnippets.org/snippets/2980/ –

関連する問題