0

djangoサイトからこれらのエラーメールの多くを受け取っています。それらは、自動化されたエクスプロイトからトリガーされたように見えます。これが一例です。

Referrer: http://example.com/fck/editor/filemanager/upload/test.html
Requested URL: /fck/editor/filemanager/upload/test.html
User agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)
IP address: 127.0.0.1

2つの質問に答えるのを手伝ってください:

  1. エクスプロイトの実際のIPオリジン、つまりlocalhostipの代わりにREMOTE_ADDRの行に沿ったものをログに記録するようにDjangoを構成するにはどうすればよいですか。

  2. そもそも偽のリファラーでリクエストを拒否する方法はありますか?要求され参照されたURLは、確かに私自身のexample.comサイトからの有効なリンクではなく、これまで一度も有効ではありませんでした。

ありがとう

4

1 に答える 1

0

私は自分の問題を理解したので、他の誰かがこの情報を必要とする場合に備えて、ここに行きます...

djangoサーバーが同じマシンのリバースプロキシの背後にあるため、エラーメールでlocalhostipを取得し続けました。このシナリオREMOTE_ADDRでは、常にローカルホストアドレスです。

電子メールはdjangoのでハードコーディングされているため、壊れたリンクの電子メールに他の変数を取り込むためのテンプレートやカスタムエラーレポートメカニズムはCommonMiddlewareありません。前のコメントで述べたカスタムエラーレポートはこれとは関係ありません。

したがって、実際のIPアドレスを取得するために、に置き換えるミドルウェアを作成しましREMOTE_ADDRHTTP_X_FORWARDED_FOR。簡単に偽造される可能性があるため、セキュリティの問題が関係しているHTTP_X_FORWARDED_FORと思われますが、実際に両方のIP変数を含めるためにCommonMiddleWareパッチなしで実行できるのはそれだけです。

于 2013-04-19T02:15:39.903 に答える