Django,同时有多个请求

时间:2018-07-06 00:26:07

标签: django performance security ip-address

我有一个middleware.py文件,该文件记录了我网站上的IP地址。

x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
    ip = x_forwarded_for.split(',')[-1].strip()
else:
    ip = request.META.get('REMOTE_ADDR')

try:
    ip_address = IPAddress.objects.get(ip_address=ip,userprofile=up)
    # Here we can have MultipleObjectsReturned error
    # that's the issue Django emails me about
except IPAddress.DoesNotExist:
    ip_address = IPAddress(ip_address=ip,userprofile=up)

由于MultipleObjectsReturned出现问题,Django向我发送了有关错误报告的电子邮件。但我在所有电子邮件中看到许多请求来自不同的URL,并且奇怪的是同时 12:20 PM

以下是一些URL:

my_domain/elastik
my_domain/digium
my_domain/Avaya
my_domain/Zyxel
my_domain/cisco.cfg
my_domain/SIPGateway
...

正常情况下,这些URL在我的网站上不存在,它们可能会生成404错误页面,但是我怀疑为什么要同时出现?为什么这些奇怪的网址?

我需要担心吗?或是否存在一种避免这种行为的方法。

  

我在 DigitalOcean

上托管

1 个答案:

答案 0 :(得分:2)

谢谢@Selcuk,我谨记您对其他IP所有者的预定工作所说的话。

一种来自@Selcuk的可能解决方案我可能在DigitalOcean上拥有一个回收的IP地址,并且以前的所有者已经设置了计划的工作,每天12:20 PM执行某项工作连接到该IP。创建快照并将服务移至新的Droplet

我发现了问题所在。 就像@GrahamDumpleton一样: 看起来更像是一个机器人在扫描您的网站,以查看您是否正在运行一个具有已知漏洞的软件包。是的,它是一个机器人在扫描,感谢user_agent软件包,它可以与pip

一起安装
 >>> request.user_agent.is_bot 
 >>> True

我有一个名为UserAgent的表,该表记录了有关每个请求的所有信息

UserAgent.objects.get_or_create(
    is_mobile = request.user_agent.is_mobile,
    is_tablet = request.user_agent.is_tablet,
    is_touch_capable = request.user_agent.is_touch_capable,
    is_pc = request.user_agent.is_pc,
    is_bot = request.user_agent.is_bot,
    id_address = ip_address,
    is_active = True,
    '''
)

在这种情况下无需担心