【问题标题】:flask app getting acces denied from mysql connection烧瓶应用程序从 mysql 连接被拒绝访问
【发布时间】:2018-04-03 15:42:47
【问题描述】:

我的烧瓶应用程序中有一个 mysql 数据库注册表单,但是当我对其进行测试并输入一些有效凭据时,使用密码 no 时出现访问被拒绝错误(即使我输入了密码),这是我的连接代码:

app = Flask(__name__)

#config for MySQL db
app.config['MySQL_HOST'] = 'localhost'
app.config['MySQL_USER'] = 'root'
app.config['MySQL_PASSWORD'] = '****'
app.config['MySQL_DB'] = 'myflaskapp'
app.config['MySQL_CURSORCLASS'] = 'DictCursor'
#init MYSQL
mysql = MySQL(app)

Projects = Projects()

这是我的注册烧瓶方法:

@app.route('/register', methods=['GET', 'POST'])
def register():
form = RegisterForm(request.form)
if request.method == 'POST' and form.validate():
    name = form.name.data
    email = form.email.data
    username = form.username.data
    password = sha256_crypt.encrypt(str(form.password.data))

我已经通过命令行验证了实际数据库存在于 MySQL 中,我也可以访问它,但是当我尝试使用我的烧瓶应用程序时,它失败了。

【问题讨论】:

  • 警告:像 SHA256 这样的高速哈希完全不足以存储密码。在绝对最小值使用Bcrypt
  • Bcrypt 比 SHA256 好?
  • 一百万倍。字面上地。 SHA256 很容易破解,尤其是在未加盐的情况下,cracking programs 每秒可以粉碎数百万个排列。 Bcrypt 是故意慢得令人痛苦的,如果你愿意,可以让它变得更加困难,以至于大多数破解者每秒只能执行 几十次
  • 好的,非常感谢,我一定会使用 Bcrypt 而不是 SHA256,但首先我只需要访问数据库。
  • 您确定这些是正确的配置参数键吗?我认为小写的y 是令人困惑的事情。 The documentation 指定全大写。

标签: python mysql database flask


【解决方案1】:

根据the documentation,配置参数需要全大写:

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = '****'
app.config['MYSQL_DB'] = 'myflaskapp'
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'

在原始代码中有一个小写的y

【讨论】:

    猜你喜欢
    • 2021-01-20
    • 2013-09-23
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 2014-06-28
    • 2020-06-20
    相关资源
    最近更新 更多