国产探花免费观看_亚洲丰满少妇自慰呻吟_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 注入

主站蜘蛛池模板: 安化县| 腾冲县| 乐都县| 收藏| 那坡县| 侯马市| 宁蒗| 蕉岭县| 西宁市| 渝中区| 云和县| 合川市| 那坡县| 许昌县| 琼海市| 剑阁县| 仁布县| 房产| 旬邑县| 荥经县| 内乡县| 鹿邑县| 乌拉特后旗| 永顺县| 三明市| 达尔| 淅川县| 仁怀市| 吐鲁番市| 马龙县| 峨山| 大足县| 濮阳县| 张家界市| 龙州县| 北票市| 栾川县| 沅陵县| 宣恩县| 临夏县| 北安市|