我在 Flask 中进行了以下登录。现在我想知道它是否安全。如果不是,我必须添加什么来增强安全性。我知道像 SSL 这样的东西也很重要,但现在我只对如何让我的 Flask 代码更安全感兴趣。
#Login
@app.route('/', methods=['GET', 'POST'])
def index():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user:
if bcrypt.check_password_hash(user.password, form.password.data):
login_user(user)
return redirect(url_for('dashboard'))
return render_template('login.html', form=form, ermsg="Invalid credentials")
return render_template('login.html', form=form)
#Sign up
@app.route('/signup', methods=['GET', 'POST'])
def signup():
form = RegisterForm()
if form.validate_on_submit():
pw_hash = bcrypt.generate_password_hash(form.password.data, 12)
new_user = User(username=form.username.data, email=form.email.data, password=pw_hash)
db.session.add(new_user)
db.session.commit()
return render_template('login.html', form=form, sumsg="User created!")
return render_template('signup.html', form=form)
最佳答案
登录过程看起来很安全。
但您没有检查注册表单中的潜在现有用户或现有电子邮件地址。除非这是由底层 User
架构管理的。
并且您应该要求最低的密码复杂性。 Danjgo 默认情况下会执行此操作,但 passwordmeter
包可以帮助您实现此目的。
关于python - 我的 Flask 登录安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023830/