1

ユーザーの IP がログインに使用した IP と同じでない場合、ユーザー セッションを許可しないように認証を構成または変更するにはどうすればよいですか? 私はできる限り Django サイトを XSS から保護しようとしています。しかし、すべてのベースをカバーしたとは確信できません。最悪の事態が発生し、誰かが私のサイトに XSS を入れることができた場合、少なくともこれにより、既存のユーザー セッションをハイジャックすることを防ぐことができます..

4

2 に答える 2

3

以下を使用して、プロキシやロード バランサーの IP アドレスではなく、訪問者の実際の IP アドレスを取得していることを確認してください。(サーバーが背後にある場合に備えて)

# on login:
request.session['logged_ip'] = request.META.get('HTTP_X_FORWARDED_FOR',
                                request.META.get('HTTP_X_REAL_IP',
                                 request.META.get('REMOTE_ADDR', '1.2.3.4')))

# on each request
if (request.META.get('HTTP_X_FORWARDED_FOR',
    request.META.get('HTTP_X_REAL_IP',
    request.META.get('REMOTE_ADDR', '1.2.3.4'))) != request.session['logged_ip'])
    # don't allow
于 2013-01-17T01:08:22.870 に答える
1

Userモデルクラスで、リクエストのIPアドレスを格納するIPフィールドを作成します。

original_ip_address = request.META['REMOTE_ADDR']

次に、ビューを提供する前に、保存されているIPで現在のリクエストを確認するだけです。

if request.META['REMOTE_ADDR'] == ip_from_database: `
# Do something
else:
 #redirect to login

ビュー内で他の何よりも先に常に呼び出される上記の関数を作成できます。

于 2010-07-31T21:09:45.813 に答える