pymysql防止SQL注入的方法

2022-05-12 14:18:53 字數 1304 閱讀 5864

import

pymysql

class

db(object):

def__init__

(self):

self.conn = pymysql.connect(host="

192.168.0.58

", user="

root

", password="

123456

", port=3306)

self.cursor =self.conn.cursor()

def__del__

(self):

self.cursor.close()

self.conn.close()

defexecute_sql(self):

name = input("

請輸入被查詢人的姓名:")

sql = f"

select * from test1.user_info where name=''

"print(f"

----->

self.cursor.execute(sql)

#自己拼裝的sql,在輸入時使用特殊的傳入值(比如:' or 1=1 or '1),能獲取到資料表中的所有資訊,也就是存在sql注入的風險。

print

(self.cursor.fetchall())

defsecure_execute_sql(self):

name = input("

(安全)請輸入被查詢人的姓名:")

sql = "

select * from test1.user_info where name=%s"#

print(f"----->

params = [name] #

將引數放入列表或元組中

self.cursor.execute(sql, params) #

使用execute方法拼裝sql語句,防sql注入

print

(self.cursor.fetchall())

defmain():

db =db()

while

true:

db.execute_sql()

db.secure_execute_sql()

if__name__ == "

__main__":

main()

執行結果:

防止SQL注入

1.什麼是sql注入 所謂sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通過遞交引數構造巧妙的sql語句,從而成功獲取想要的資料。2.sql注入的種類 從具體而言,sql注入可分為五大類,分別是 數字型注入 字元型注入...

防止SQL注入

最近看到很多人的 都被注入js,被iframe之類的。非常多。本人曾接手過乙個比較大的 被人家入侵了,要我收拾殘局。1.首先我會檢查一下伺服器配置,重新配置一次伺服器安全,可以參考 2.其次,用麥咖啡自定義策略,即使 程式有漏洞,別人也很難在檔案上寫入 了。參考自定義策略,有了這個策略,再爛的程式,...

防止Sql注入

防不勝防 可以肯定的說,過濾不是辦法,而且效率很低 過濾的目的主要是提供反饋資訊,必須前後臺都要做 但是,有很多辦法可以繞過 致命的單引號 能做的事情按重要性大致如下 1。資料庫訪問用預定義會話 preparedstatement 從根本上防止sql截斷 2。後台過濾 為輸入的資訊提供反饋資訊,只要...