代码之家  ›  专栏  ›  技术社区  ›  Lemayzeur

Django,同时有多个请求

  •  0
  • Lemayzeur  · 技术社区  · 6 年前

    我有一个 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给我发了一封关于bug报告的电子邮件。但是我在所有的电子邮件中看到许多请求来自不同的网址,奇怪的是同时 下午12:20

    以下是一些网址:

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

    正常情况下,这些URL不存在于我的网站上,他们假设生成404错误页面,但我的怀疑是为什么同时发生的?为什么这些奇怪的网址?

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

    我主持 洋地黄

    1 回复  |  直到 6 年前
        1
  •  2
  •   Lemayzeur    6 年前

    谢谢你@selcuk我记得你对其他知识产权所有者的预定工作所说的话。

    @selcuk可能的解决方案 以下内容: 我可能在DigitalOcean上有一个可回收的IP地址,前一个所有者已经设置了一个预定的工作,每天下午12:20做一些连接到该IP的事情。创建快照并将服务移动到新的液滴

    我找出了问题所在。 就像@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,
        '''
    )
    

    在那种情况下不必担心