国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

pymysql如何解決sql注入問(wèn)題深入講解

2020-10-29 21:46:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1. SQL 注入

SQL 注入是非常常見(jiàn)的一種網(wǎng)絡(luò)攻擊方式,主要是通過(guò)參數(shù)來(lái)讓 mysql 執(zhí)行 sql 語(yǔ)句時(shí)進(jìn)行預(yù)期之外的操作。

即:因?yàn)閭魅氲膮?shù)改變SQL的語(yǔ)義,變成了其他命令,從而操作了數(shù)據(jù)庫(kù)。

產(chǎn)生原因:SQL語(yǔ)句使用了動(dòng)態(tài)拼接的方式。

例如,下面這段代碼通過(guò)獲取用戶(hù)信息來(lái)校驗(yàn)用戶(hù)權(quán)限:

import pymysqlsql = 'SELECT count(*) as count FROM user WHERE id = ' + str(input['id']) + ' AND password = "' + input['password'] + '"'cursor = dbclient.cursor(pymysql.cursors.DictCursor)cursor.execute(sql)count = cursor.fetchone()if count is not None and count['count'] > 0: print('登陸成功')

但是,如果傳入?yún)?shù)是:

input['id'] = '2 or 1=1'

你會(huì)發(fā)現(xiàn),用戶(hù)能夠直接登錄到系統(tǒng)中,因?yàn)樵?sql 語(yǔ)句的判斷條件被 or 短路成為了永遠(yuǎn)正確的語(yǔ)句。
這里僅僅是舉一個(gè)例子,事實(shí)上,sql 注入的方式還有很多種,這里不深入介紹了。

總之,只要是通過(guò)用戶(hù)輸入數(shù)據(jù)來(lái)拼接 sql 語(yǔ)句,就必須在第一時(shí)間考慮如何避免 SQL 注入問(wèn)題。

那么,如何防止 SQL 注入呢?

2. 預(yù)防 SQL 注入

主站蜘蛛池模板: 绥德县| 怀集县| 萝北县| 南安市| 平阳县| 芜湖市| 祁东县| 龙陵县| 大余县| 临西县| 观塘区| 新干县| 兴业县| 辉南县| 宿迁市| 朝阳市| 化德县| 榆中县| 临洮县| 旺苍县| 尤溪县| 定边县| 铁岭市| 崇左市| 黔西| 射阳县| 淄博市| 中西区| 苗栗县| 元氏县| 邯郸市| 班戈县| 丰台区| 新竹县| 通化县| 防城港市| 全椒县| 南宁市| 祁连县| 津南区| 和龙市|