我从网上找到了这个,并试图把它应用到我的学校项目中。我试着使用while循环,但没有成功
def logs():
mycursor = mydb.cursor()
sql = "SELECT * FROM login_data WHERE BINARY username = '%s' OR BINARY email_address = '%s' AND BINARY password = '%s'" % (
username.get(), username.get(), password.get())
mycursor.execute(sql)
if mycursor.fetchone():
subprocess.Popen([sys.executable, "Manager.py"])
exit()
else:
messagebox.showinfo("Warning", "Wrong username or password")
如果您想从头开始构建它,以下是我的良好实践:
假设您创建了一个新表LoginAttemp,列为ID、USERNAME、ATTEMP
在用户名有效、密码无效的情况下,评估每次登录尝试,并按1添加ATTEMP number
在每次登录尝试时创建尝试检查器。当数据库中的尝试次数超过最大值时,将其设置为异常登录
您应该为重置登录尝试设置条件 如果您想改用可用的工具,这里有一些很好的答案:
Lock out users after too many failed login attempts
https://code.google.com/archive/p/django-brutebuster/
https://pypi.org/project/django-axes/
您可以声明一个全局变量fail_count。(此功能之外) 在else部分中,每次向其添加1。 确保为每个会话重置失败计数=0
相关问题 更多 >
编程相关推荐