我正在构建一个小界面,我希望用户能够在其中写出他们的信息entiresql语句,然后查看返回的数据。但是,我不希望用户能够做任何有趣的事情,即delete from user_table;
。实际上,我希望用户能够做的唯一一件事就是运行select
声明。我知道 SQLite 没有特定的用户,所以我想我要做的是制定一组拒绝某些查询的规则。也许是正则表达式字符串或其他东西(正则表达式让我有点害怕)。关于如何实现这一目标有什么想法吗?
def input_is_safe(input):
input = input.lower()
if "select" not in input:
return False
#more stuff
return True
我可以建议采用不同的方法来解决您的问题。您可以将对数据库的访问限制为只读。这样,即使用户尝试执行删除/更新查询,他们也无法损坏您的数据。
HerePython关于如何打开只读连接的答案:
db = sqlite3.connect('file:/path/to/database?mode=ro', uri=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)