最も簡単な方法は、リモート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
、何か悪いことが起こるのを待ちます。