sql注入式攻擊,就是攻擊者把sql命令插入到web
表單的輸入域或頁面請求的查詢字串,欺騙伺服器執行惡意的
sql命令。在某些表單中,使用者輸入的內容直接用來構造(或者影響)動態
sql命令,或作為
儲存過程
的輸入引數,這類表單特別容易受到
sql注入式攻擊。
,怎麼樣,暈了沒有?
不過沒有關係
,我試試看
,能不能把大家講醒了
.顧名思義
:sql
注入式攻擊
,肯定是
sql語句的事了.所以
,先來看乙個
sql語句:
select *from tabel1 where user_name='" & txtuser_name.text &"'
這是一句大家經常用到的
sql語句
,可能有人會想
,這麼簡單的一句話
,會有什麼問題呢
?不要著急
,且聽我細細說來.
你的本意是想讓某些具有相應許可權的人操作程式
,他們都會知道登入的使用者名稱
,藉此驗證.可是
,你有沒有想過
,如果我在
txtuser_name
輸入框中輸入
" " &" ' or'" & "1=1"
看,原本的
sql
語句:
select *from tabel1 where user_name='" & txtuser_name.text &"'
現在變成了
:
select *from tabel1 where user_name='" & " " &" ' or '" &"1=1" &"'
這時,相信明眼人都看出來了
,後部分的或命題
: or 1=1
是必然成立的
,所以,
登入程式成功了!沒錯
,這就是
sql注入式攻擊
了.攻擊者
嘗試輸入某些特殊的sql字串篡改查詢改變其原來的功能,欺騙系統授予訪問許可權。
說到這裡
,大家有沒有中豁然開朗的感覺
---原來,黑客
,就是這樣練成的
…那麼,既然
sql注入有這麼大的危害
,我們該如何防止
sql注入呢
?簡單的介紹這幾種方法,使用者可自行選擇.
1.永遠不要信任使用者的輸入。對使用者的輸入進行校驗,可以通過
正規表示式
,或限制長度;對單引號和
雙"-"進行轉換等。
2.永遠不要使用動態拼裝sql,可以使用引數化的sql或者直接使用
儲存過程
進行資料查詢訪問。
3.永遠不要使用
管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。
4.不要把機密資訊直接存放,加密或者hash掉密碼和敏感的資訊。
5.應用的異常資訊應該給出盡可能少的提示,最好使用自定義的
錯誤資訊
對原始錯誤資訊進行包裝
6.sql注入的檢測方法一般採取輔助
軟體或**平台來檢測,軟體一般採用sql注入檢測工具jsky,**平台就有億思
**安全
平台檢測工具。mdcsoft scan等。採用
mdcsoft-ips
可以有效的防禦sql注入,xss攻擊等.
直面--sql注入式攻擊,讓你的程式更安全,讓使用者使用的更放心!
SQL注入式攻擊
常見的sql注入式攻擊過程類如 某個asp.net web應用有乙個登入頁面,這個登入頁面控制著使用者是否有權訪問應用,它要求使用者輸入乙個名稱和密碼。登入頁面中輸入的內容將直接用來構造動態的sql命令,或者直接用作儲存過程的引數。下面是asp.net應用構造查詢的乙個例子 system.text....
SQL注入式攻擊
1 為什麼會存在這種攻擊方式?大多數的b s系統或者c s系統,都會涉及到資料的儲存和互動,資料一般儲存在sql server mysql等資料庫中。因此,常見的資料互動中,往往需要根據使用者輸入的資訊進行資料庫查詢等操作 1 使用者登入,需要根據使用者填寫的使用者名稱和密碼查詢資料庫進行校驗。2 ...
防範SQL注入式攻擊
拷貝別人的 sql注入式攻擊是利用是指利用上的漏洞,在目標伺服器上執行 sql命令以及進行其他方式的攻擊 動態生成 sql命令時沒有對使用者輸入的資料進行驗證是 sql注入攻擊得逞的主要原因。比如 如果你的查詢語句是select fromadminwhereusername user andpass...