2010-02-07 80 views

回答

1

SQL注入是攻擊者能夠以某種方式操縱他們發送給你的數據,這種方式愚弄你的程序將其中的一部分用作SQL命令。

有關示例,您可以參觀here

alt text

1

當你創建一個SQL查詢通常包含的所有排序位和片段,其中一些來自用戶的輸入。例如,如果您的應用中有「搜索簿」功能,則該書的名稱是來自用戶的字符串。

聰明的邪惡的用戶可以操縱他們發送到您的應用程序的輸入,使得從這個輸入構建的SQL查詢將是有害的。

所以,如果你建立你的查詢是這樣的:

String q = "Select * from books where name='" + bookName + "'" 

然後,黑客可以搜索一個名爲"x'; delete from books where name like '%"

書最終的結果將是下面的查詢將被執行: Select * from books where name='x'; delete from books where name like '%'

這將刪除書籍表的所有記錄。避免這種情況的標準方法是在構建包含用戶提供的部分的查詢時始終使用預準備語句。

+0

你的例子解釋了sql注入的概念。 thanx – ruchi 2010-02-07 07:16:16

6

SQL注入是有人在你的一個SQL查詢中插入惡意代碼的地方。

讓我們假設你有一個SQL查詢是這樣的:

select * from people where name = '<name>' and password = '<password>' 

現在讓我們假設<name><password>由某個人類型替換您的網頁上。如果有人輸入此作爲自己的密碼...

' or '' = ' 

...然後將得到的查詢是:

select * from people where name = 'someone' and password = '' or '' = '' 

...這顯然不是意圖。你可以閱讀更多關於它here

+0

你的建議會幫助我很多。 thanx非常...... – ruchi 2010-02-07 07:15:02