[英]SQL Injection Guide In Java (or any other language)
我有一個jsp代碼,其查詢如下
'select * from MyTable where
Column1='+request.getParameter('q'),
從一個執行
java.sql.Statement。 現在,只要我們可以使用
請求參數,我的目標是將查詢更改為:
Select * from MyTable where Column1 = a; Delete from MyTable;
由於原始的選擇查詢是通過java.sql.Statement執行的,
我們怎么做這樣的SQL注入? 如果問題不清楚,請
評論,我將嘗試提供進一步的解釋。
如果我們將q注入為anything' OR 'x'='x
則它將選擇所有容易受到攻擊的列。 之所以這樣,是因為JDBC驅動程序會自動將作為參數傳遞給准備好的語句的變量自動轉義。
盡管Prepared Statements有助於防御SQL Injection,但是通過不當使用Prepared Statements可能會發生SQL Injection攻擊。 下面的示例說明了這種情況,其中輸入變量直接傳遞到Prepared語句中,從而為SQL Injection攻擊鋪平了道路。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.