Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何禁止我的Django应用程序中的用户(有点扭曲)_Python_Django_Proxy_Ip - Fatal编程技术网

Python 如何禁止我的Django应用程序中的用户(有点扭曲)

Python 如何禁止我的Django应用程序中的用户(有点扭曲),python,django,proxy,ip,Python,Django,Proxy,Ip,我有一个基于网络的Django应用程序,用户可以用假名聚集在一起聊天 大多数访问此网站的用户都是通过Opera Mini进行访问的。与简单的web浏览器不同,Opera Mini有一个扭曲的,它通过它获取所有内容,并将网页重新格式化为更适合小屏幕的格式 我想在此应用程序中实现禁止功能。一些用户正在恐吓其他人——如果我现在手动禁止他们,他们只会以新的昵称返回。请注意,这些用户不是很精通技术——几乎所有人都是半学历。因此,我的问题是: 当用户使用诸如Opera Mini之类的代理时,禁止用户IP有效

我有一个基于网络的Django应用程序,用户可以用假名聚集在一起聊天

大多数访问此网站的用户都是通过Opera Mini进行访问的。与简单的web浏览器不同,Opera Mini有一个扭曲的,它通过它获取所有内容,并将网页重新格式化为更适合小屏幕的格式

我想在此应用程序中实现禁止功能。一些用户正在恐吓其他人——如果我现在手动禁止他们,他们只会以新的昵称返回。请注意,这些用户不是很精通技术——几乎所有人都是半学历。因此,我的问题是:

  • 当用户使用诸如Opera Mini之类的代理时,禁止用户IP有效吗
  • 是否有任何著名的Django插件可以优雅地处理IP阻塞
  • 如果1不起作用(在这种情况下,2也不起作用),有没有其他可靠的方法可以让我避开敌对用户并保护我的社区
  • 目前,我为这些用户提供了一个“否决票”功能,屏蔽那些帖子收到过多否决票的账户。但这对火焰战争几乎毫无帮助。施虐者不断以新的笔名返回,破坏了整个社区。如果没有别的办法,也许我应该试试

    注意:我不是高级程序员(更多的是设计师),所以我更喜欢为像我这样的人推出时间不长的swift解决方案。

    看看。Opera服务器将向您发送一个
    X-Forwarded-For
    标头,其中包含客户端的原始IP,您可以使用
    request.META['HTTP\u X\u Forwarded\u For']
    在Django中访问该IP

    也就是说,要记住一些事情(我在Opera Mini拥有最大网络浏览器市场份额的国家生活和建立网站):

    • 听起来你的许多用户都是通过手机连接的。这意味着它们很可能具有动态IP地址。他们的IP可能会频繁更改,如果您现在禁用一个IP,可能会在几分钟/小时后阻止其他用户的访问。如果您确实禁止IP,那么建议设置一个相当短的超时

    • X-Forwarded-For
      头是出了名的不可靠。它们通常包含内部IP,您需要过滤掉这些IP。也不能保证您将获得正确的上游IP(考虑用户位于VPN/Tor节点/etc后面的情况)。您还需要考虑应用程序前面可能存在的任何反向代理

    • 真正想滥用这一制度的人会找到一条出路。适度和/或基于声誉的系统是将他们的噪音降至最低的唯一方法


    关于地狱班的相关讨论:听起来像是一个有趣的社区安迪-谢谢你的链接!克里斯-这个社区主要由刚开始体验互联网的人组成。他们主要来自农村或城市郊区,最近购买了有史以来第一台计算机设备。solarissmoke:你有没有为功能手机用户测量IP阻止列表的经验?如果我真的实施了IP禁令,我会试图确定它应该持续多长时间(10分钟?60分钟?)。这是一个主观问题,我想如果你在该领域有经验,你可以给出一些数据点。这实际上取决于网络运营商以及他们重新分配IP的频率(我猜这是IP池大小和客户端数量的函数),因此很难给出任何合理的数字。我认为实际上你需要在你的启发式中使用IP作为一个信号,但不应该只依赖IP,否则你几乎肯定会阻止不应该被阻止的人。