五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

SQL注入學(xué)習(xí)筆記

2023-03-17 09:29 作者:Binary-Royallu科技  | 我要投稿

SQL注入基礎(chǔ)

SQL注入介紹:

SQL注入漏洞是由于SQL語句的調(diào)用方法不完善而產(chǎn)生的安全隱患。一旦應(yīng)用中存在SQL注入漏洞,就可能造成如下影響。值得注意的是,以下影響中攻擊者都能夠直接對(duì)服務(wù)器實(shí)施主動(dòng)攻擊,而不需要用戶參與。

  • 數(shù)據(jù)庫內(nèi)的信息全部被外界竊取

  • 數(shù)據(jù)庫中的內(nèi)容被篡改

  • 登錄認(rèn)證繞過(應(yīng)用程序登錄不需要用戶名和密碼)

  • 其他,例如服務(wù)器上的文件被讀取或修改、服務(wù)器上的程序被執(zhí)行等。

SQL注入的威脅:

  • 錯(cuò)誤查詢導(dǎo)致信息泄露。

  • 聯(lián)合查詢導(dǎo)致信息泄露。

  • 繞過認(rèn)證。

  • 篡改數(shù)據(jù)。

  • 讀取文件。

根據(jù)數(shù)據(jù)庫引擎的不同,通過SQL注入攻擊還可能會(huì)達(dá)到下列效果。

  • 執(zhí)行OS命令。

  • 讀取文件

  • 編輯文件

  • 通過HTTP請(qǐng)求攻擊其他服務(wù)器。

SQL注入安全隱患產(chǎn)生原因:

SQL注入攻擊能夠以開發(fā)者意想不到的方式改變SQL語句的構(gòu)造,其中很大程度上都是因?yàn)樽置媪康木壒?/strong>。字面量指的是SQL語句中的固定值。SQL中每種數(shù)據(jù)類型都有相應(yīng)的字面量,其中最常用的字符串字面量和數(shù)值字面量。

字符串字面量的問題:

SQL標(biāo)準(zhǔn)規(guī)格中規(guī)定字符串字面量必須用單引號(hào)括起來。而若要在字符串字面量內(nèi)使用單引號(hào),就需要使用連續(xù)的兩個(gè)單引號(hào)來表示。這被稱為單引號(hào)轉(zhuǎn)義。

例如: abc’de字符串,需要使用兩個(gè)單引號(hào)來轉(zhuǎn)義。 ‘a(chǎn)bc’’de’

針對(duì)數(shù)值的SQL注入攻擊:

Web開發(fā)中普遍使用的腳本語言(PHP,Perl,Puby等)多為動(dòng)態(tài)類型語言,不限制變量類型。因此,理應(yīng)填入數(shù)值的地方就有可能會(huì)被填入其他類型的字符。比如,假設(shè)一下SQL語句中南age列的類型為整型,存儲(chǔ)的是年齡。

復(fù)制

由于數(shù)值字面量沒有用單引號(hào)圍住,所以,當(dāng)出現(xiàn)非數(shù)值的字符時(shí)即被視為數(shù)值字面量終止。此例中,分號(hào); 不是數(shù)值,因此分號(hào)以后的值就被排除了數(shù)值字面量,而被解釋為SQL語句的一部分。

安全對(duì)策:

產(chǎn)生SQL注入漏洞的根本原因?yàn)?,被指定為參?shù)的字符串的一部分被排除出字面量,導(dǎo)致SQL語句發(fā)生了變化。因此,要防止SQL注入漏洞,就必須防止SQL語句在拼接過程中被更改。具體可采取如下兩種方法:

  1. 使用占位符拼接SQL語句。

  2. 在應(yīng)用程序中拼接SQL語句時(shí),要確保字面量被正確處理,SQL語句不可被更改。

由于第二種方法的實(shí)施非常困難,因此常用第一種方式。

使用靜態(tài)占位符。

靜態(tài)占位符的綁定變量操作在數(shù)據(jù)庫引擎中執(zhí)行。含有占位符的SQL語句被直接發(fā)送至數(shù)據(jù)庫引擎,數(shù)據(jù)庫引擎執(zhí)行編譯等準(zhǔn)備工作后確定SQL。歲后綁定值也被發(fā)送至數(shù)據(jù)庫引擎,數(shù)據(jù)庫引擎將收到的值填充進(jìn)SQL語句后將其執(zhí)行。

由于SQL語句是在包含占位符的狀態(tài)下編譯的,因此從理論上來說,之后SQL語句就不可能再被改變。

動(dòng)態(tài)占位符:

動(dòng)態(tài)占位符的方式為,首先在處理SQL的程序庫中執(zhí)行綁定變量操作,然后再將SQL語句發(fā)送給數(shù)據(jù)庫引擎處理。綁定變量是字面量會(huì)被妥善處理,因此只要處理中沒有Bug就不會(huì)遭受SQL注入攻擊。

靜態(tài)和動(dòng)態(tài)占位符:

無論使用靜態(tài)還是動(dòng)態(tài)占位符都能消除SQL注入漏洞。但就理論上來說,靜態(tài)占位符能夠完全消除SQL注入漏洞出現(xiàn)的可能性,所以應(yīng)當(dāng)盡可能地采用靜態(tài)占位符。

SQL注入的輔助性對(duì)策:

  • 不顯示詳細(xì)錯(cuò)誤消息

    display_error=Off

  • 檢驗(yàn)輸入值得有效性

  • 設(shè)置數(shù)據(jù)庫權(quán)限

手工SQL注入


SQL注入學(xué)習(xí)筆記的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
稻城县| 中西区| 湘潭市| 观塘区| 绥阳县| 虹口区| 日照市| 肃南| 陆良县| 辽阳县| 鄱阳县| 老河口市| 延边| 瑞昌市| 通河县| 中方县| 拉萨市| 塘沽区| 清流县| 顺平县| 苏尼特右旗| 彭州市| 德安县| 朝阳县| 灵宝市| 南召县| 贡嘎县| 铜鼓县| 綦江县| 泰州市| 大兴区| 大埔区| 云林县| 株洲县| 山东| 许昌市| 西吉县| 淮南市| 花莲县| 南京市| 手游|