日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

pythonsql注入_python使用mysql,sql注入问题

發布時間:2025/3/8 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythonsql注入_python使用mysql,sql注入问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python使用mysql

importpymysql

conn=pymysql.connect(

host= '127.0.0.1', #連接地址

port = 3306, #端口

user = root, #用戶名

password = '', #密碼

database = 'db', #庫名稱

charset = 'utf8' #編碼格式 utf8,不是utf-8

)

cursor= conn.cursor(pymsql.cursors.DictCursor) #產生一個游標,以字典的形式返回查詢出來的數據,鍵是表的字段,值是表字段對應的信息

sql = select * from userinfo #寫sql語句

cursor.execute(sql) #執行傳入的sql語句

print(cursor.fetchone()) #拿到表中一條數據

print(cursor.fetchone())print(cursor.fetchone())

cursor.scroll(1,'absolute') #absolute絕對移動,前面數字寫幾,就相對于起始位置向后移動幾位

cursor.srcoll(1,'relative') #relative相對移動,前面寫幾,就相對于當前位置向后移動幾位

print(cursor.fetchall()) #拿到表中所有的數據

sql注入問題

conn =pymysql.connect(

host= '127.0.0.1',

port= 3306,

user=root,

password= '',

database= 'db',

charset= 'utf8')

cursor=conn.cursor(pymsql.cursors.DictCursor)

username= input('請輸入用戶名:')

password= input('請輸入密碼:')

sql= "select * from userinfo where name = '%s' and password ='%s'" %s(username, password)

res=cursor.execute(sql)ifres:print(cursor.fetchall())else:print('賬號或密碼錯誤')

我們用上述一段代碼詮釋一下sql注入的問題, 當我們輸入正確的賬號密碼的時候,發現可以正常打印字段數據,當我們輸入錯誤賬號或密碼時,就顯示賬號密碼錯誤

以我們只知道用戶名為例

竟然查到了用戶的所有信息,這個是根據 -- 注釋做到的sql注入

假如我們賬號密碼都不知道,那么如何用sql注入去獲取網站的用戶信息呢

在我們對賬號密碼毫不知情的情況下,我們使用or判斷條件的成立,再加上 --注釋,可以獲取到網站所有的用戶信息

根據以上兩個問題我們應該如何解決呢?

conn =pymysql.connect(

host= '127.0.0.1',

port= 3306,

user=root,

password= '',

database= 'db',

charset= 'utf8')

cursor=conn.cursor(pymsql.cursors.DictCursor)

username= input('請輸入用戶名:')

password= input('請輸入密碼:')

sql= "select * from userinfo where name = %s and password =%s"res=cursor.execute(sql,(username,password)) # execute可以自動識別sql語句中的%s,它可以幫助你過濾特殊的字符,避免sql注入的問題ifres:print(cursor.fetchall())else:print('賬號或密碼錯誤')

總結:

1.sql注入,就是利用注釋等具有特殊意義的符號,來完成的

2.后續寫sql語句時,不要手動去拼接關鍵性的數據,而是交由execute去拼接

python對mysql的增,改,刪操作

importpymysql

conn=pymysql.connect(

host= '127.0.0.1',

port= 3306,

user=root,

password= '',

database= 'db',

charset= 'utf8')

cursor=conn.cursor(pymsql.cursors.DictCursor)

sql= "insert into user(name,password) values('wu','123')" #插入,增

cursor.execute(sql)

conn.commit() 在新增時要寫conn.commit()

importpymysql

conn=pymysql.connect(

host= '127.0.0.1',

port= 3306,

user=root,

password= '',

database= 'db',

charset= 'utf8')

cursor=conn.cursor(pymsql.cursors.DictCursor)

sql= "update user set name='qazqaz' where id = 1" #修改

cursor.execute(sql)

conn.commit() #在修改時要寫conn.commit()

importpymysql

conn=pymysql.connect(

host= '127.0.0.1',

port= 3306,

user=root,

password= '',

database= 'db',

charset= 'utf8')

cursor=conn.cursor(pymsql.cursors.DictCursor)

sql= "delete from user where id = 1" #刪除

cursor.execute(sql)

conn.commit()#在刪除時要寫conn.commit()

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的pythonsql注入_python使用mysql,sql注入问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。