未使用的Django会话未过期,数据库混乱

未使用的Django会话未过期,数据库混乱,django,django-sessions,Django,Django Sessions,我的一个Django网站最近被一些爬虫发现,它在登录页面上疯了,在我注意到之前的几天里,每分钟请求100-200次。我之所以发现这一点,是因为我的数据库备份开始爆炸式增长,特别是因为django_sessions表。我将django-admin.py clearsessions设置为每天运行,以清除过期的会话,但该命令不会触及创建的数百万个会话。爬虫程序实际上没有尝试登录,但是 我最终阻止了机器人,在登录链接中添加了rel='nofollow',并在robots.txt中添加了Disallow:

我的一个Django网站最近被一些爬虫发现,它在登录页面上疯了,在我注意到之前的几天里,每分钟请求100-200次。我之所以发现这一点,是因为我的数据库备份开始爆炸式增长,特别是因为django_sessions表。我将django-admin.py clearsessions设置为每天运行,以清除过期的会话,但该命令不会触及创建的数百万个会话。爬虫程序实际上没有尝试登录,但是

我最终阻止了机器人,在登录链接中添加了rel='nofollow',并在robots.txt中添加了Disallow:/login/,但从长远来看,这仍然表明可能会出现一些问题,并用垃圾填满我的数据库。我如何避免这种情况?我不知道为什么我甚至关心未登录用户的会话,我可以将会话限制为他们吗


我的会话中间件是django.contrib.sessions.middleware,我还没有指定会话引擎,所以我认为它是默认的

clearsessions命令仅删除过期的会话。您可以考虑缩短会话超时时间。但事实上,我不会为此担心。@warath coder数百万次额外的会话导致我的备份激增到以前的100倍,使JSON备份无法进行。小型Web服务器会因为内存不足而终止该进程。请尝试更短的超时时间;或者我所做的是跟踪与登录用户的会话;这样做;然后,您可以在备份之前删除所有其他会话。或者只是不备份会话表,不需要它来进行灾难恢复。