如何在SQL注入時保護資料庫

2021-04-22 19:32:04 字數 740 閱讀 5081

sql注入是防止資料庫攻擊的乙個有效策略。攻擊者將注入乙個sql語句到另外乙個語句中,這個通常會損壞你的資料庫。有資料庫介面的web站點通常在sql注入的時候容易受到攻擊,因為它們是基於動態的sql;下面是乙個簡單的例子:

在乙個asp頁面中會請求使用者輸入名字和密碼,然後將下面的字串傳送到資料庫中:

select from users where username =

』whatever』 and password = 』mypassword』

這看起來很安全,實際上不是,乙個使用者可能會這樣輸入他的名字:

』 or 1>0 –

當把這個輸入到sql語句中的時候,結果可能會象這樣:

select from users where username

= 』』 or 1>0 -- and password = 』』

這個注入語言將通過語句暴露密碼。這將導致所有的使用者名稱都會在使用者列表中,所以,任何使用者都可以進入到你的系統中。

最簡單阻止注入分類是分析sql串並移動語句之前的任何「--」的發生。

同時,你要小心注入的時候含有分號,因為分號是給sql語句分界。如果乙個使用者的名字是下面這個:

』 or 1>0 ; delete customers ; --

如果乙個使用者懷有惡意,那麼他可以使用多種方法看穿你的系統,但是,最簡單的方法就是避免動態的sql,用儲存過程來代替。使用sql來遍歷引數,注入上面所提到的將會產生程序錯誤,並且儲存程序將不會被執行。

如何在SQL注入時保護資料庫

sql注入是防止資料庫攻擊的乙個有效策略。攻擊者將注入乙個sql語句到另外乙個語句中,這個通常會損壞你的資料庫。有資料庫介面的web站點通常在sql注入的時候容易受到攻擊,因為它們是基於動態的sql 下面是乙個簡單的例子 在乙個asp頁面中會請求使用者輸入名字和密碼,然後將下面的字串傳送到資料庫中 ...

SQL注入時常用的函式和資料庫

重要的函式 version mysql 資料庫版本 database 當前資料庫名 user 使用者名稱 current user 當前使用者名稱 system user 系統使用者名稱 datadir 資料庫路徑 version compile os 作業系統版本 mysql字串函式 length...

mysql資料庫sql注入原理 SQL注入原理

結構化查詢語句 structured query language,縮寫 sql 是一種特殊的程式語言,用於資料庫中的標準資料查詢語言。sql注入 sql injection 是一種常見的web安全漏洞,攻擊者利用這個問題,可以訪問或者修改資料,或者利用潛在的資料庫漏洞進行攻擊。什麼是sql注入?s...