暴力破解用户密码的方法有两种:
(1)选定一个用户名,枚举猜测用户密码
(2)选定一个密码,猜测用户名
防止这两类的方法也是很简单的。
第一种,我们对一个固定登录的id号进行计数,在一个很短的时间内,如果登录失败次数,超过一定次数,比如5分钟内连续错了5次,那么就锁定30分钟。
第二种,我们对一个固定ip进行计数,如果同一个ip,连续发送登录请求,且失败,那么我们也可以认为这个登录是不正常的。对其进行锁定。
在tornado里面,我们怎么拿ip?
tornado的每一个handler都有一个属性:request,这个是一个HTTPRequest对象,我们可以在handler里面
通过,self.request.remote_ip拿到请求方的ip。
当然这个是最简单的情况,并没有考虑代理什么的。
tornado的request对象,详细情况可以看下面链接:
http://www.tornadoweb.org/en/stable/httpserver.html#tornado.httpserver.HTTPRequest