2019-07-16

防止sql注入

漏洞為即使你隨便輸入一個(gè)賬戶,按照”xxx’ or 1=1 – “的格式,不輸入密碼也能登錄進(jìn)去,這種漏洞我們稱呼為”sql注入”;問題主要存在于sql語句的寫法。

解決:

為了避免sql注入,我們不要自己做拼接,用pymysql自帶的execute后面?zhèn)鲄?shù)的方式,有如下三種方法:

sql="select*fromuserinfowhereusername=%sandpassword=%s"cursor.execute(sql, (user, pwd))

或者:

sql="select*fromuserinfowhereusername=%sandpassword=%s"cursor.execute(sql,[user, pwd])

或者:

sql="select*fromuserinfowhereusername=%(u)sandpassword=%(p)s"cursor.execute(sql, {'u':user,'p': pwd})


索引


索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個(gè)組成部分),它們包含著對數(shù)據(jù)表里所有記錄的引用指針。

更通俗的說,數(shù)據(jù)庫索引好比是字典前面的目錄,能加快數(shù)據(jù)庫的查詢速度

索引的目的在于提高查詢效率

?索引的使用

查看索引

showindexfrom表名;

創(chuàng)建索引

如果指定字段是字符串,需要指定長度,建議長度與定義字段時(shí)的長度一致

字段類型如果不是字符串,可以不填寫長度部分

createindex索引名稱on表名(字段名稱(長度))

刪除索引:

dropindex索引名稱on表名;

索引demo

?創(chuàng)建測試表test_index

createtabletest_index(titlevarchar(10));

賬戶管理


在生產(chǎn)環(huán)境下操作數(shù)據(jù)庫時(shí),絕對不可以使用root賬戶連接,而是創(chuàng)建特定的賬戶,授予這個(gè)賬戶特定的操作權(quán)限,然后連接進(jìn)行操作,主要的操作就是數(shù)據(jù)的crud

MySQL賬戶體系:根據(jù)賬戶所具有的權(quán)限的不同,MySQL的賬戶可以分為以下幾種

服務(wù)實(shí)例級賬號:啟動(dòng)了一個(gè)mysqld,即為一個(gè)數(shù)據(jù)庫實(shí)例;如果某用戶如root,擁有服務(wù)實(shí)例級分配的權(quán)限,那么該賬號就可以刪除所有的數(shù)據(jù)庫、連同這些庫中的表

數(shù)據(jù)庫級別賬號:對特定數(shù)據(jù)庫執(zhí)行增刪改查的所有操作

數(shù)據(jù)表級別賬號:對特定表執(zhí)行增刪改查等所有操作

字段級別的權(quán)限:對某些表的特定字段進(jìn)行操作

存儲程序級別的賬號:對存儲程序進(jìn)行增刪改查的操作

賬戶的操作主要包括創(chuàng)建賬戶、刪除賬戶、修改密碼、授權(quán)權(quán)限等

注意:

進(jìn)行賬戶操作時(shí),需要使用root賬戶登錄,這個(gè)賬戶擁有最高的實(shí)例級權(quán)限

通常都使用數(shù)據(jù)庫級操作權(quán)限

主從同步的定義

主從同步使得數(shù)據(jù)可以從一個(gè)數(shù)據(jù)庫服務(wù)器復(fù)制到其他服務(wù)器上,在復(fù)制數(shù)據(jù)時(shí),一個(gè)服務(wù)器充當(dāng)主服務(wù)器(master),其余的服務(wù)器充當(dāng)從服務(wù)器(slave)。因?yàn)閺?fù)制是異步進(jìn)行的,所以從服務(wù)器不需要一直連接著主服務(wù)器,從服務(wù)器甚至可以通過撥號斷斷續(xù)續(xù)地連接主服務(wù)器。通過配置文件,可以指定復(fù)制所有的數(shù)據(jù)庫,某個(gè)數(shù)據(jù)庫,甚至是某個(gè)數(shù)據(jù)庫上的某個(gè)表。

使用主從同步的好處:

通過增加從服務(wù)器來提高數(shù)據(jù)庫的性能,在主服務(wù)器上執(zhí)行寫入和更新,在從服務(wù)器上向外提供讀功能,可以動(dòng)態(tài)地調(diào)整從服務(wù)器的數(shù)量,從而調(diào)整整個(gè)數(shù)據(jù)庫的性能。

提高數(shù)據(jù)安全,因?yàn)閿?shù)據(jù)已復(fù)制到從服務(wù)器,從服務(wù)器可以終止復(fù)制進(jìn)程,所以,可以在從服務(wù)器上備份而不破壞主服務(wù)器相應(yīng)數(shù)據(jù)

在主服務(wù)器上生成實(shí)時(shí)數(shù)據(jù),而在從服務(wù)器上分析這些數(shù)據(jù),從而提高主服務(wù)器的性能

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容