Django,同时有多个请求

Django,同时有多个请求,django,performance,security,ip-address,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(

我有一个
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)
由于出现了一些问题,Django给我发了一封关于bug报告的电子邮件。但我在所有的电子邮件中都看到许多请求来自不同的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错误页面,但我的疑问是为什么会同时出现?为什么这些奇怪的URL

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

我在DigitalOcean担任主持人


谢谢@Selcuk我记住了你对其他IP所有者安排的工作所说的话

来自@Selcuk的一个可能的解决方案:我可能在DigitalOcean上有一个可回收的IP地址,以前的所有者已经设置了一个计划作业,每天下午12:20连接到该IP。创建快照并将服务移动到新的液滴


我找出了问题所在就像@GrahamDumpleton说的:看起来更像是一个机器人扫描你的站点,看看你是否正在运行一个已知漏洞的软件包。没错,这是一个机器人扫描,多亏了可以与
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,
    '''
)

在这种情况下不必担心

谢谢@Selcuk我记住了你对其他IP所有者安排的工作所说的话

来自@Selcuk的一个可能的解决方案:我可能在DigitalOcean上有一个可回收的IP地址,以前的所有者已经设置了一个计划作业,每天下午12:20连接到该IP。创建快照并将服务移动到新的液滴


我找出了问题所在就像@GrahamDumpleton说的:看起来更像是一个机器人扫描你的站点,看看你是否正在运行一个已知漏洞的软件包。没错,这是一个机器人扫描,多亏了可以与
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,
    '''
)

在这种情况下不必担心

ip地址是否唯一?多个IPAddress对象怎么可能有相同的
ip\u地址
?这是我一直在想的,直到我收到django的奇怪反馈,因为
MultipleObjectsReturned
你可能在DigitalOcean上有一个回收的ip地址,之前的所有者已经设置了一个计划作业,每天下午12:20连接到该IP。我建议您创建一个快照,并将您的服务移动到一个新的微滴上,以查看这是否解决了问题。看起来更像是一个机器人扫描您的站点,以查看您是否正在运行一个已知漏洞的包。我知道它们来自@Selcuk,谢谢。
ip\u address
是否唯一?多个IPAddress对象怎么可能有相同的
ip\u地址
?这是我一直在想的,直到我收到django的奇怪反馈,因为
MultipleObjectsReturned
你可能在DigitalOcean上有一个回收的ip地址,之前的所有者已经设置了一个计划作业,每天下午12:20连接到该IP。我建议您创建一个快照,并将您的服务移动到一个新的微滴,以查看这是否解决了问题。看起来更像是一个机器人扫描您的站点,以查看您是否正在运行一个具有已知漏洞的包。我知道它们来自@Selcuk,谢谢