最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
星座| 海阳市| 彩票| 罗田县| 宁晋县| 邵东县| 合水县| 仁怀市| 桐柏县| 长顺县| 当阳市| 都匀市| 阳山县| 京山县| 庄河市| 建平县| 乐亭县| 和平区| 南阳市| 关岭| 新昌县| 仙居县| 宁都县| 开化县| 余姚市| 霸州市| 乐至县| 屯门区| 郁南县| 北川| 宁安市| 遂川县| 宜阳县| 万山特区| 塔河县| 呼和浩特市| 开鲁县| 得荣县| 通城县| 盱眙县| 合山市|