import sqlite3
# 連接資料庫
conn = sqlite3.connect('test.db')
# 建立新的數據表
conn.executescript('''DROP TABLE IF EXISTS students;
CREATE TABLE students
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL);''')
# 插入學生信息
students = ['Paul','Tom','Tracy','Lily']
for name in students:
query = "INSERT INTO students (name) VALUES ('%s')" % (name)
conn.executescript(query);
# 檢視已有的學生信息
cursor = conn.execute("SELECT id, name from students")
print('IDName')
for row in cursor:
print('{0}{1}'.format(row[0], row[1]))
conn.close()
conn = sqlite3.connect('test.db')
# 插入包含注入代碼的信息
name = "Robert');DROP TABLE students;--"
query = "INSERT INTO students (name) VALUES ('%s')" % (name)
conn.executescript(query)
# 檢視已有的學生信息
cursor = conn.execute("SELECT id, name from students")
print('IDName')
for row in cursor:
print('{0}{1}'.format(row[0], row[1]))
conn.close()
"INSERT INTO students (name) VALUES ('Robert')"
"INSERT INTO students (name) VALUES ('Robert');DROP TABLE students;--"
conn = sqlite3.connect('test.db')
# 以安全方式插入包含注入代碼的信息
name = "Robert');DROP TABLE students;--"
query = "INSERT INTO students (name) VALUES (?)"
conn.execute(query, [name])
# 檢視已有的學生信息
cursor = conn.execute("SELECT id, name from students")
print('IDName')
for row in cursor:
print('{0}{1}'.format(row[0], row[1]))
conn.close()
來源:jizhi.im/blog/post/sql_injection_intro
猜你還想看
絕了!搜狗輸入法這騷操作!
長按,掃碼,關注
及時收看更多精彩內容
點擊」閱讀原文「:領取5T精品資料,面試總結、100+實戰項目
我知道你 「在看」