python - 我的 Flask 登录安全吗?

标签 python security session flask flask-sqlalchemy

我在 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 包可以帮助您实现此目的。

https://pypi.python.org/pypi/passwordmeter

关于python - 我的 Flask 登录安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023830/

相关文章:

php - 传入生产服务器的 `/t.php` GET 请求是什么?

C# 无法检查 session 是否存在?

python - 测试 Django 应用程序 cookie、 session 和状态

php - 如何使用同一域的 memcached 在多个服务器之间共享 php session

python - Pygame - 如何均匀地分布随机生成的平台?

c# - .net 的 SASL 库

python - Boost.python 构建

c# - 如何从 C# 控制台应用程序向使用表单例份验证的 ASP.NET WebAPI 进行身份验证?

python - 通过迭代更改列表的元素(python)

python - 如何定义为函数/方法调用提供内插文档字符串的装饰器