【发布时间】:2019-09-28 04:38:46
【问题描述】:
我正在制作一个完整的 python 软件,它将用于执行 sql 查询,但我想阻止一些查询,如 DROP DATABASE,以便没有人可以通过我的 python 程序执行它
我希望没有人可以使用此语句来删除事物是 SQL
mycursor.execute(DROP DATABASE 'database name here')
mydb.commit()
或
sql="DROP DATABASE 'database name here'"
mycursor.execute(sql)
mydb.commit()
#I WANT NO ONE CAN USE THIS QUERY
【问题讨论】:
-
是的,你自己写逻辑。也许
if 'DROP DATABASE' in user_query: break; else: cur.execute(user_query)或等 -
这也是一个非常糟糕的主意。不允许用户在您的应用程序中编写任意 SQL 查询。
-
您可能想看看这个list of SQL injection attacks,这可能会阻止您尝试为此编写自己的逻辑。
-
如今的数据库主要由受信任的代理使用,例如代表用户以提升的权限运行的 Web 应用程序。但早些时候,它们实际上是为来自具有不同凭据和权限的多个经过身份验证的用户的连接而设计的。也许您想采用那种“旧”风格。