Django,同时发出多个请求
Django, Multiple requests at the same time
我有一个 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
以下是一些网址:
my_domain/elastik
my_domain/digium
my_domain/Avaya
my_domain/Zyxel
my_domain/cisco.cfg
my_domain/SIPGateway
...
正常情况下,这些网址在我的网站上不存在,它们应该会生成 404 错误页面,但我的疑问是为什么同时出现?为什么会有这些奇怪的网址?
我需要担心吗?或者是否存在避免这种行为的方法。
I host on DigitalOcean
谢谢@Selcuk 我牢记你所说的其他 IP 所有者关于预定工作的内容。
来自 @Selcuk 的可能解决方案:我可能在 DigitalOcean 上有一个回收的 IP 地址,并且之前的所有者已经设置了一个计划作业来做某事每天 12:20 下午连接到该 IP。创建快照并将服务移动到新的 Droplet
我发现哪里出了问题。 就像@GrahamDumpleton 所说: 看起来更像是一个机器人在扫描您的站点以查看您是否运行 一个具有已知漏洞的软件包。 没错,这是一个机器人扫描,感谢 user_agent
可以使用 pip
安装的软件包
>>> request.user_agent.is_bot
>>> True
我有一个名为 UserAgent 的 table 记录每个请求的所有信息
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,
'''
)
那样的话就不用担心了
我有一个 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
以下是一些网址:
my_domain/elastik
my_domain/digium
my_domain/Avaya
my_domain/Zyxel
my_domain/cisco.cfg
my_domain/SIPGateway
...
正常情况下,这些网址在我的网站上不存在,它们应该会生成 404 错误页面,但我的疑问是为什么同时出现?为什么会有这些奇怪的网址?
我需要担心吗?或者是否存在避免这种行为的方法。
I host on DigitalOcean
谢谢@Selcuk 我牢记你所说的其他 IP 所有者关于预定工作的内容。
来自 @Selcuk 的可能解决方案:我可能在 DigitalOcean 上有一个回收的 IP 地址,并且之前的所有者已经设置了一个计划作业来做某事每天 12:20 下午连接到该 IP。创建快照并将服务移动到新的 Droplet
我发现哪里出了问题。 就像@GrahamDumpleton 所说: 看起来更像是一个机器人在扫描您的站点以查看您是否运行 一个具有已知漏洞的软件包。 没错,这是一个机器人扫描,感谢 user_agent
可以使用 pip
>>> request.user_agent.is_bot
>>> True
我有一个名为 UserAgent 的 table 记录每个请求的所有信息
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,
'''
)
那样的话就不用担心了