flask sqlite3安全问题[重复]

问题描述 投票:0回答:1

我编写了一个Flask应用程序,用户在5个不同页面中回答5个问题,并使用sqlite3将他/她的答案发送到database.db

在Ubuntu上部署应用程序后,我收到一条错误,指出数据库是只读的。所以我改变了chmod 777的许可。然后问题解决了。

但我已经阅读了很多关于在任何情况下都不使用chmod 777的建议。 (像this one

所以我该怎么做?如何安全地将从用户收到的数据写入数据库?

#a sample part of my code:

@app.route('/g2', methods=['GET', 'POST'])
def k2():
    z1= request.form['z1']
    z2= request.form['z2']
    con = sql.connect("/var/www/FlaskApp/database.db")
    cur = con.cursor()
    cur.execute("UPDATE hoc SET z2=? WHERE id=?", (z2, z1))
    con.commit()
    con.close()
python database flask sqlite
1个回答
2
投票

这不是编程问题。

理解Unix(Linux)文件所有权和权限的概念是绝对必要的 - 包括umask值和目录权限。有成千上万的教程。

最简单的方法是将数据库存储在自己的目录中。 DB文件应由用于运行烧瓶应用程序的同一用户帐户拥有。它是开发期间的帐户和生产中的http服务器帐户。

DB文件的限制性最强的文件模式是0600(文件模式是八进制数)。

© www.soinside.com 2019 - 2024. All rights reserved.