Python 编写易受攻击的注入代码sqlite3
我正在编写一个python文件来查询,该文件容易受到sql注入的攻击。Python 编写易受攻击的注入代码sqlite3,python,sqlite,sql-injection,Python,Sqlite,Sql Injection,我正在编写一个python文件来查询,该文件容易受到sql注入的攻击。 这里是表名和列名,在执行python文件时对其进行约束,并将约束作为命令行参数提供。 这是pyhon文件: import sqlite3 import sys con = sqlite3.connect("univ1.db") cur = con.cursor() table = sys.argv[1] column = sys.argv[2] constraint = sys.argv[3] cur
这里是表名和列名,在执行python文件时对其进行约束,并将约束作为命令行参数提供。
这是pyhon文件:
import sqlite3
import sys
con = sqlite3.connect("univ1.db")
cur = con.cursor()
table = sys.argv[1]
column = sys.argv[2]
constraint = sys.argv[3]
cur.execute( """SELECT * FROM {} WHERE {} = '%s'""".format(table, column)% constraint)
rows = cur.fetchall()
for row in rows:
print(','.join([str(val) for val in row]))
此代码可能容易受到sql注入的攻击,因此执行以下命令将从数据库中删除指定的表,同时打印其建筑为blah的教室的详细信息
python3 query.py classroom building "blah'; DROP TABLE INSTRUCTOR; --'"
但由于cursor.execute一次只能执行一个命令,程序终止时会发出警告。如何允许执行多个命令。还请注意,fetchall函数应返回相关数据。
我为什么要问这个问题?
这是一个任务的一部分,在这个任务中,我应该编写禁止注入和易受注入攻击的查询文件。事实证明python sqlite完全不受删除相关攻击的攻击。事实证明python sqlite完全不受删除相关攻击的攻击。通常我们会告诉人们如何编写不易受SQL注入攻击的代码。由于许多人从这里抄袭代码而不读这个问题,我甚至会考虑回答它危险。请回答它。您可以在一段时间后删除它,通常我们会告诉人们如何编写不易受SQL注入攻击的代码。由于许多人从这里抄袭代码而不读这个问题,我甚至会考虑回答它危险。请回答它。你可以在一段时间后删除它