Python 第三章安全问题

Python 第三章安全问题,python,database,flask,sqlite,Python,Database,Flask,Sqlite,我编写了一个Flask应用程序,其中用户在5个不同页面中回答5个问题,并使用sqlite3将其答案发送到数据库.db 在Ubuntu上部署应用程序后,我收到一个错误,指出数据库是只读的。因此,我通过chmod 777更改了权限。然后问题就解决了 但是我读过很多关于在任何情况下都不要使用chmod 777的建议。(像) 那我该怎么办? 如何将从用户接收的数据安全地写入数据库 #a sample part of my code: @app.route('/g2', methods=['GET',

我编写了一个Flask应用程序,其中用户在5个不同页面中回答5个问题,并使用sqlite3将其答案发送到
数据库.db

在Ubuntu上部署应用程序后,我收到一个错误,指出数据库是只读的。因此,我通过
chmod 777
更改了权限。然后问题就解决了

但是我读过很多关于在任何情况下都不要使用
chmod 777
的建议。(像)

那我该怎么办? 如何将从用户接收的数据安全地写入数据库

#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()

这不是编程问题

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

最简单的方法是将数据库存储在自己的目录中。DB文件应属于运行flask应用程序所用的同一用户帐户。它是您在开发过程中的帐户,是http服务器在生产过程中的帐户


DB文件最严格的文件模式是0600(文件模式是八进制数)。

这不是编程问题

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

最简单的方法是将数据库存储在自己的目录中。DB文件应属于运行flask应用程序所用的同一用户帐户。它是您在开发过程中的帐户,是http服务器在生产过程中的帐户


DB文件最严格的文件模式是0600(文件模式是八进制数)。

您应该使用ORM或以某种方式在内存中进行更改并立即提交到实际数据库您应该使用ORM或以某种方式在内存中进行更改并立即提交到实际数据库