SQL注入是什么意思?SQL注入的原理
SQL注入是什么意思?
SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷或過濾不嚴,攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,在管理員不知情的情況下實現(xiàn)非法操作,以此來實現(xiàn)欺騙數(shù)據(jù)庫服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而進一步得到相應(yīng)的數(shù)據(jù)信息。
SQL注入的原理:
SQL注入攻擊是通過操作輸入來修改SQL語句,用以達到執(zhí)行代碼對WEB服務(wù)器進行攻擊的方法。簡單的說就是在post/getweb表單、輸入域名或頁面請求的查詢字符串中插入SQL命令,最終使web服務(wù)器執(zhí)行惡意命令的過程。可以通過一個例子簡單說明SQL注入攻擊
假設(shè)某網(wǎng)站頁面顯示時URL為http://www.example.com?test=123,此時URL實際向服務(wù)器傳遞了值為123的變量test,這表明當前頁面是對數(shù)據(jù)庫進行動態(tài)查詢的結(jié)果。由此,我們可以在URL中插入惡意的SQL語句并進行執(zhí)行。
在網(wǎng)站開發(fā)過程中,開發(fā)人員使用動態(tài)字符串構(gòu)造SQL語句,用來創(chuàng)建所需的應(yīng)用,這種情況下SQL語句在程序的執(zhí)行過程中被動態(tài)的構(gòu)造使用,可以根據(jù)不同的條件產(chǎn)生不同的SQL語句,比如需要根據(jù)不同的要求來查詢數(shù)據(jù)庫中的字段。這樣的開發(fā)過程其實為SQL注入攻擊留下了很多的可乘之機