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