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注入的風險。
(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注入
(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。後台過濾 為輸入的資訊提供反饋資訊,只要...