数据库
首页 > 数据库> > python-SQLite查询限制

python-SQLite查询限制

作者:互联网

我正在构建一个小界面,希望用户能够写出他们的整个sql语句,然后查看返回的数据.但是,我不希望用户能够做任何有趣的事情,即从user_table;中删除.实际上,我希望用户能够做的唯一一件事就是运行select语句.我知道没有特定的SQLite用户,所以我在考虑要制定的一组拒绝某些查询的规则.也许是正则表达式字符串之类的东西(正则表达式使我有些害怕).关于如何做到这一点的任何想法?

def input_is_safe(input):
    input = input.lower()
    if "select" not in input:
        return False
    #more stuff
    return True

解决方法:

我可以为您的问题建议另一种方法.您可以将对数据库的访问权限限制为只读.这样,即使用户尝试执行删除/更新查询,他们也将无法破坏您的数据.

Here是Python如何打开只读连接的答案:

db = sqlite3.connect('file:/path/to/database?mode=ro', uri=True)

标签:python,sql,sqlite,sql-injection
来源: https://codeday.me/bug/20191011/1890216.html