Python 如何禁止我的Django应用程序中的用户(有点扭曲)
我有一个基于网络的Django应用程序,用户可以用假名聚集在一起聊天 大多数访问此网站的用户都是通过Opera Mini进行访问的。与简单的web浏览器不同,Opera Mini有一个扭曲的,它通过它获取所有内容,并将网页重新格式化为更适合小屏幕的格式 我想在此应用程序中实现禁止功能。一些用户正在恐吓其他人——如果我现在手动禁止他们,他们只会以新的昵称返回。请注意,这些用户不是很精通技术——几乎所有人都是半学历。因此,我的问题是:Python 如何禁止我的Django应用程序中的用户(有点扭曲),python,django,proxy,ip,Python,Django,Proxy,Ip,我有一个基于网络的Django应用程序,用户可以用假名聚集在一起聊天 大多数访问此网站的用户都是通过Opera Mini进行访问的。与简单的web浏览器不同,Opera Mini有一个扭曲的,它通过它获取所有内容,并将网页重新格式化为更适合小屏幕的格式 我想在此应用程序中实现禁止功能。一些用户正在恐吓其他人——如果我现在手动禁止他们,他们只会以新的昵称返回。请注意,这些用户不是很精通技术——几乎所有人都是半学历。因此,我的问题是: 当用户使用诸如Opera Mini之类的代理时,禁止用户IP有效
X-Forwarded-For
标头,其中包含客户端的原始IP,您可以使用request.META['HTTP\u X\u Forwarded\u For']
在Django中访问该IP
也就是说,要记住一些事情(我在Opera Mini拥有最大网络浏览器市场份额的国家生活和建立网站):
- 听起来你的许多用户都是通过手机连接的。这意味着它们很可能具有动态IP地址。他们的IP可能会频繁更改,如果您现在禁用一个IP,可能会在几分钟/小时后阻止其他用户的访问。如果您确实禁止IP,那么建议设置一个相当短的超时
头是出了名的不可靠。它们通常包含内部IP,您需要过滤掉这些IP。也不能保证您将获得正确的上游IP(考虑用户位于VPN/Tor节点/etc后面的情况)。您还需要考虑应用程序前面可能存在的任何反向代理X-Forwarded-For
- 真正想滥用这一制度的人会找到一条出路。适度和/或基于声誉的系统是将他们的噪音降至最低的唯一方法