0

私はこの問題で立ち往生しています。アイデアは、LANまたはローカルネットワークを介して私のWebサイトにアクセスするユーザーが、ログインページをスキップして、特別な権限を持つ匿名ユーザーとしてWebサイトにアクセスできるようにすることです。(私はapache2とmod_wsgiでubuntuサーバーを実行しています)。ユーザーがLAN経由でWebサイトにアクセスしているかどうかをapacheが判断する方法があるかどうか誰かが知っていますか?私は現在、この問題を解決する方法がわからないため、すべての提案を受け入れています。

ありがとう。

4

1 に答える 1

0

最も簡単な方法は、リモートIPを確認することです。それがLANサブネットにある場合は、それらがローカルであることがわかります。ただし、通常の免責事項およびすべて:REMOTE_ADDRはほとんどの場合安全に使用できますが、特定の状況ではなりすましされる可能性があります。ISPまたは同様のものへのアクセス(銀行に侵入し、残りの人生の間、人里離れた島のリゾートに隠れるために十分に逃げようとした場合にのみ価値のあるレベルのハッキング)、またはへのアクセスが必要になります。ローカルネットワーク自体なので、どちらのシナリオでも少し空想的ですが、セキュリティの黄金律は「最悪の事態を計画し、最善を期待する」ことです。侵入シナリオは、一般的に高すぎるため、セキュリティの欠如によってもたらされる小さな利便性に対して支払うことはできません。

そうは言っても、私はこれを教育的な演習として扱います。それでも、すべてのローカルネットワークユーザー間で単純に共有される少なくとも1人のユーザーが必要です(ちなみに、別のhonkinの大きな赤いセキュリティフラグ)。IPアドレスを確認し、それがサブネット内にあるかどうかを判断し、存在する場合は、保存されている資格情報を使用して共有ユーザーにログインします(さらに別のhonkinの大きな赤いセキュリティフラグ)。

from django.contrib.auth import authenticate, login

class PleaseHackMeMiddleware(object):
    def process_request(self, request):
        if re.search(r'^192.168.1', request.META['REMOTE_ADDR']):
            user = authenticate('shared_username', 'shared_password')
            if user:
                login(request, user)

次に、それをに追加してMIDDLEWARE_CLASSES、何か悪いことが起こるのを待ちます。

于 2012-07-24T18:57:26.800 に答える