SQL注入是什么意思?SQL注入的原理
SQL注入是什么意思?
SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒(méi)有判斷或過(guò)濾不嚴(yán),攻擊者可以在web應(yīng)用程序中事先定義好的查詢語(yǔ)句的結(jié)尾上添加額外的SQL語(yǔ)句,在管理員不知情的情況下實(shí)現(xiàn)非法操作,以此來(lái)實(shí)現(xiàn)欺騙數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而進(jìn)一步得到相應(yīng)的數(shù)據(jù)信息。

SQL注入的原理:
SQL注入攻擊是通過(guò)操作輸入來(lái)修改SQL語(yǔ)句,用以達(dá)到執(zhí)行代碼對(duì)WEB服務(wù)器進(jìn)行攻擊的方法。簡(jiǎn)單的說(shuō)就是在post/getweb表單、輸入域名或頁(yè)面請(qǐng)求的查詢字符串中插入SQL命令,最終使web服務(wù)器執(zhí)行惡意命令的過(guò)程。可以通過(guò)一個(gè)例子簡(jiǎn)單說(shuō)明SQL注入攻擊
假設(shè)某網(wǎng)站頁(yè)面顯示時(shí)URL為http://www.example.com?test=123,此時(shí)URL實(shí)際向服務(wù)器傳遞了值為123的變量test,這表明當(dāng)前頁(yè)面是對(duì)數(shù)據(jù)庫(kù)進(jìn)行動(dòng)態(tài)查詢的結(jié)果。由此,我們可以在URL中插入惡意的SQL語(yǔ)句并進(jìn)行執(zhí)行。
在網(wǎng)站開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)人員使用動(dòng)態(tài)字符串構(gòu)造SQL語(yǔ)句,用來(lái)創(chuàng)建所需的應(yīng)用,這種情況下SQL語(yǔ)句在程序的執(zhí)行過(guò)程中被動(dòng)態(tài)的構(gòu)造使用,可以根據(jù)不同的條件產(chǎn)生不同的SQL語(yǔ)句,比如需要根據(jù)不同的要求來(lái)查詢數(shù)據(jù)庫(kù)中的字段。這樣的開(kāi)發(fā)過(guò)程其實(shí)為SQL注入攻擊留下了很多的可乘之機(jī)