SQL注入是什麼?

2022-05-06 04:42:07 字數 1108 閱讀 9235

許多**程式在編寫時,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料庫查詢**(一般是在瀏覽器位址列進行,通過正常的www埠訪問),根據程式返回的結果,獲得某些想得知的資料,這就是所謂的sql injection,即sql注入。

**的惡夢——sql注入

sql注入通過網頁對**資料庫進行修改。它能夠直接在資料庫中新增具有管理員許可權的使用者,從而最終獲得系統管理員許可權。黑客可以利用獲得的管理員許可權任意獲得**上的檔案或者在網頁上加掛木馬和各種惡意程式,對**和訪問該**的網友都帶來巨大危害。

防禦sql注入有妙法

圖一可是如果通過sql注入分析器就可輕鬆跳過防注入系統並自動分析其注入點(圖2)。然後只需要幾分鐘,你的管理員賬號及密碼就會被分析出來(圖3)。

圖二圖三第二步:對於注入分析器的防範,筆者通過實驗,發現了一種簡單有效的防範方法。首先我們要知道sql注入分析器是如何工作的。在操作過程中,發現軟體並不是衝著「admin」管理員賬號去的,而是衝著許可權(如flag=1)去的。這樣一來,無論你的管理員賬號怎麼變都無法逃過檢測。

第三步:既然無法逃過檢測,那我們就做兩個賬號,乙個是普通的管理員賬號,乙個是防止注入的賬號,為什麼這麼說呢?筆者想,如果找乙個許可權最大的賬號製造假象,吸引軟體的檢測,而這個賬號裡的內容是大於千字以上的中文字元,就會迫使軟體對這個賬號進行分析的時候進入全負荷狀態甚至資源耗盡而宕機。下面我們就來修改資料庫吧。

1.對錶結構進行修改。將管理員的賬號欄位的資料型別進行修改,文字型改成最大欄位255(其實也夠了,如果還想做得再大點,可以選擇備註型),密碼的字段也進行相同設定。

2.對錶進行修改。設定管理員許可權的賬號放在id1,並輸入大量中文字元(最好大於100個字)。

3.把真正的管理員密碼放在id2後的任何乙個位置(如放在id549上)。

我們通過上面的三步完成了對資料庫的修改。

這時是不是修改結束了呢?其實不然,要明白你做的id1賬號其實也是真正有許可權的賬號,現在計算機處理速度那麼快,要是遇上個一定要將它算出來的軟體,這也是不安全的。我想這時大多數人已經想到了辦法,對,只要在管理員登入的頁面檔案中寫入字元限制就行了!就算對方使用這個有上千字元的賬號密碼也會被擋住的,而真正的密碼則可以不受限制。

SQL注入是什麼?如何防止?

sql注入是一種注入攻擊,可以執行惡意sql語句。下面本篇文章就來帶大家了解一下sql注入,簡單介紹一下防止sql注入攻擊的方法,希望對大家有所幫助。什麼是sql注入?sql注入 sqli 是一種注入攻擊,可以執行惡意sql語句。它通過將任意sql 插入資料庫查詢,使攻擊者能夠完全控制web應用程式...

24 SQL注入是什麼,如何避免SQL注入?

sql 注入 sql injection 是發生在 web 程式中資料庫層的安全漏洞,是 存在最多也是最簡單的漏洞。主要原因是程式對使用者輸入資料的合法性沒有判斷和處理,導致攻擊者可以在 web 應用程式中事先定義好的 sql 語句中新增額外的 sql 語句,在管理員不知情的情況下實現非法操作,以此...

MySQL 39SQL注入是什麼

sql注入 sql injection 是指應用程式對使用者輸入資料的合法性沒有判斷 沒有過濾,攻擊者可以在應用程式中通過表單提交特殊的字串,該特殊字串會改變sql的執行結果,從而在管理員毫不知情的情況下實現非法操作,以此來實現欺騙資料庫執行非授權的任意查詢。create table user id...