我坚持这个问题。 该想法允许用户通过LAN或本地网络访问我的网站跳过登录页面并以具有特殊权限的匿名用户身份访问网站。 (我正在运行带有apache2和mod_wsgi的ubuntu服务器)。有谁知道apache是否有办法确定用户是否通过LAN访问网站?我对所有建议持开放态度,因为我目前不知道如何解决这个问题。
感谢。
答案 0 :(得分:0)
最简单的方法是查看远程IP。如果它在您的LAN子网中,那么您知道它们是本地的。但是,通常的免责声明和所有:虽然REMOTE_ADDR 大部分可以安全使用,但在某些情况下可以被欺骗。它需要访问ISP或类似设备(只有当你试图穿透银行并且在足够的时间内躲藏在一个僻静的岛屿度假村中才能获得一定程度的黑客攻击),或访问本地网络本身,所以在任何一种情况下都有点幻想,但安全的黄金法则是“计划最坏的,希望最好的”。 任何入侵场景通常都要付出太高的代价,因为缺少安全性会给您带来轻微的便利。
那就是说,我会把这视为一种教育活动。您仍然需要至少一个用户只需在所有本地网络用户之间共享(顺便说一下,另一个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
并等待发生不好的事情。