㈠ 如何防止sql注入,ssh整合的網站
防止SQL注入:
一、首先是伺服器自身防禦
做好伺服器自身防禦,是有效阻斷SQL注入的有效辦法和後期防禦的前提,為此設定好伺服器的本地安全策略、審核策略、更新網站漏洞補丁、升級伺服器防禦程序。
二、做好網站自身安全防禦
對伺服器裡面自身的網站及時更新漏洞補丁,給網站資料庫和程序設定恰當的許可權,如果不怕麻煩可以臨時取消SQL的寫入許可權,用到的時候再添加上,也是有效預防SQL注入的方法之一。
三、實時監控網站動態日誌
實時監控網站的訪問記錄,對於敏感訪問路徑或敏感指令的IP進行單個IP或者多IP段封禁,是有效預防SQL注入的有效方法,
溫馨提示:防治SQL注入,保護好數據備份尤為重要!
㈡ 如何防範SQL注入漏洞及檢測
SQL注入漏洞攻擊的防範方法有很多種,現階段總結起來有以下方法:
(1)數據有效性校驗。如果一個輸入框只可能包括數字,那麼要通過校驗確保用戶輸入的都是數字。如果可以接受字母,那就要檢查是不是存在不可接受的字元,最好的方法是增加字元復雜度自動驗證功能。確保應用程序要檢查以下字元:分號、等號、破折號、括弧以及SQL關鍵字。另外限製表單數據輸入和查詢字元串輸入的長度也是一個好方法。如果用戶的登錄名最多隻有10個字元,那麼不要認可表單中輸入10個以上的字元,這將大大增加攻擊者在SQL命令中插入有害代碼的難度。
(2)封裝數據信息。對客戶端提交的數據進行封裝,不要將數據直接存入cookie中,方法就是在編程的代碼中,插入session、if、try、else,這樣可以有效地防止攻擊者獲取cookie中的重要信息。
(3)去除代碼中的敏感信息。將在代碼中存在的用戶名、口令信息等敏感欄位刪除,替換成輸入框。
SQL=" select from users where username = 』admin』and password= 』1234567』 "
如:這樣顯然會暴露管理員的用戶名、口令信息。可以將其修改成:
SQL= " select * from users where username='" +Txtuser.Text + "' and userpwd='" + Textpwd.Text + "'"
這樣就安全了很多,入侵者也是不會輕易的就獲取到用戶名、口令信息。
(4)替換或刪除單引號。使用雙引號替換掉所有用戶輸入的單引號,這個簡單的預防措施將在很大程度上預防SQL注入漏洞攻擊,單引號時常會無法約束插入數據的Value,可能給予輸入者不必要的許可權。用雙引號替換掉單引號可以使大部分SQL注入漏洞攻擊失敗。 如:
「select* from users where username='" + admin + "' and userpwd='" + 1234567+ "'」
顯然會得到與
「select * from users where username='admin' and password= '1234567'」
相同的結果。
(5)指定錯誤返回頁面。攻擊者有時從客戶端嘗試提交有害代碼和攻擊字元串,根據Web Service給出的錯誤提示信息來收集程序及伺服器的信息,從而獲取想得到的資料。應在Web Service中指定一個不包含任何信息的錯誤提示頁面。
(6)限制SQL字元串連接的配置文件。使用SQL變數,因為變數不是可以執行的腳本,即在Web頁面中將連接資料庫的SQL字元串替換成指定的Value,然後將Web.config文件進行加密,拒絕訪問。
(7)設置Web目錄的訪問許可權。將虛擬站點的文件目錄禁止遊客用戶(如:Guest用戶等)訪問,將User用戶許可權修改成只讀許可權,切勿將管理許可權的用戶添加到訪問列表。
(8)最小服務原則。Web伺服器應以最小許可權進行配置,只提供Web服務,這樣可以有效地阻止系統的危險命令,如ftp、cmd、vbscript等。
(9)鑒別信息加密存儲。將保存在資料庫users表中的用戶名、口令信息以密文形式保存,也可以對users表進行加密處理,這樣可以大大增加對鑒別信息訪問的安全級別。
(10)用戶許可權分離。應盡可能的禁止或刪除資料庫中sa許可權用戶的訪問,對不同的資料庫劃分不同的用戶許可權,這樣不同的用戶只能對授權給自己的資料庫執行查詢、插入、更新、刪除操作,就可以防止不同用戶對非授權的資料庫進行訪問。
㈢ SQL注入攻擊,可否通過禁止SQL語句執行來防禦
不能,sql 用來後台資料庫中查詢數據,禁止了,前台就沒有任何數據了,自然程序也變得毫無意義了
只有程序(比如前端部分)收到客戶端的數據請求時進行一定的過濾,(如 請求中包含非法字元串對此過濾),才能防止一定的sql 注入
㈣ 如何防範SQL蠕蟲病毒
SQL Slammer也被稱為「藍寶石」(Sapphire),2003年1月25日首次出現。它是一個非同尋常的蠕蟲病毒
1、在邊界防火牆或者路由器上阻塞外部對內和內部對外的UDP/1434埠的訪問
2、找到被感染的主機(安裝有SQL Server的系統)
可啟動網路監視程序(譬如 eID,Sniffer 等)進行檢查,找到網路中往目的埠為UDP/1434發送大量數據的主機,或在邊界路由器(或者防火牆)上進行檢查。
3、將被感染的主機與網路斷開,重新引導系統(將內存中的蠕蟲清除)。安裝微軟提供的SQL的補丁,恢復網路連接。
建議安裝Microsoft SQL Server 2000 SP3()。
或者下載專門針對該漏洞的熱修復補丁:
安裝完補丁後系統將不會再被此病毒感染。
㈤ 網站安全狗sql注入攻擊與防禦怎麼設置
網站安全狗sql注入攻擊與防禦怎麼設置?所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。SQL防護功能主要包括檢測URL長度功能和注入的防護規則兩部分。下面我們通過實際的攻擊實例來闡述該功能:
網站安全狗下載:網站安全狗Apache版|網站安全狗IIS版
網站安全狗sql注入攻擊與防禦設置教程
1.
超長的URL鏈接測試
過長的URL對於網站來說有什麼危害呢?在網路上,曾有人對過長的URL進行測試發現,過長的URL會對流量產生影響。特別是當如果代碼里的超鏈接寫的是長URL時,就會導致網頁內容變大,嚴重影響網站出口寬頻的流量。
網站安全狗SQL注入防護功能,可以對URL長度進行設置並且將這個上限值設為通用指標來檢測URL長度,當然用戶可根據情況自己設定上限值(設置完後記得保存哦)。
具體安全狗設置和測試結果分別如下圖所示:
圖1
URL防護規則
當IE地址欄瀏覽長度超過設置的值,網站安全狗就會進行攔截,攔截頁面如下:
圖2
長鏈接測試實例
同時,通過網站安全狗的防護日誌,我們可以查看到相對應的攻擊防禦成功的日誌記錄,截圖如下:
圖3
長鏈接防護日誌
_#網站安全狗sql注入攻擊與防禦怎麼設置#_
2.網站安全狗的設計是根據攻擊特徵庫,對用戶輸入進行過濾,從而達到防護SQL注入的目的。
我們以官方第一條默認防護規則為例通過相應的攻擊實例來介紹該功能設置。
(1)當我們設置SQL攔截規則的「防止and
or方式注入」的「檢測URL」功能為「開啟」時候,截圖如下:
圖4
設置SQL攔截規則
然後我們進行SQL注入,在IE上輸入參數,進行SQL注入頁面如下:
圖5
SQL注入攻擊
由於我們已經開啟了SQL攔截規則的「防止and
or方式注入」的「檢測URL」功能,當進行類似SQL注入時候就會彈出被網站安全狗成功攔截的信息,截圖如下:
圖6
攔截提示信息
同時在網站安全狗的防護日誌中會生成對應的攻擊防禦成功的日誌記錄,截圖如下:
圖7
防護日誌
(2)當我們把SQL攔截規則的「防止and
or方式注入」的「檢測COOKIE」功能設置為「開啟」時候,截圖如下:
圖8
設置SQL防護規則
通過cookie方式進行SQL注入,注入方式如下圖所示:
圖9
cookie注入成功截圖
_網站安全狗sql注入攻擊與防禦怎麼設置#_
「開啟」SQL攔截規則的「防止and
or方式注入」的「檢測COOKIE」功能後,當進行類似SQL注入時候就會彈出被網站安全狗成功攔截的信息,截圖如下:
圖10
攔截提示信息
同時在網站安全狗的防護日誌中會生成對應的攻擊防禦成功的日誌記錄:
圖11
防護日誌
(3)把SQL攔截規則的「防止and
or方式注入」的「檢測POST內容」功能設置為「開啟」,截圖如下:
圖12
開啟檢測POST
「開啟」之後,通過POST方式進行SQL注入,測試方式如下圖所示:
圖13
通過POST方式SQL注入
由於已經「開啟」了SQL攔截規則的「防止and
or方式注入」的「檢測POST內容」功能,這時如果發現類似SQL注入的時候,就會彈出被網站安全狗的攔截信息。截圖如下:
圖14
攔截提示信息
同時在網站安全狗的防護日誌中會生成對應的攻擊防禦成功的日誌記錄,截圖如下:
圖15
防護日誌
以上是網站安全狗sql注入攻擊與防禦設置教程,希望對你有幫助!
㈥ 防禦和檢查SQL注入的主要手段有哪些
所謂SQL注入,其實是程序漏洞,沒有什麼技術,比如下面的語句就可能被注入SQL="SELECT*FROMADMINWHEREUSER='"&REQUEST("USER")&"'ANDPASS='"&REQUEST("PASS")&"'"別人可以精心設計一個PASS參數提交給你,使得你的SQL完成其它功能,例如PASS的值為:abc'ORUSER='admin這時候SQL語句是什麼樣子,你看看:SELECT*FROMADMINWHEREUSER='admin'ANDPASS='abc'ORUSER='admin'任何密碼都可以成功登錄。解決的方法:程序應該判斷USER和PASS這些參數裡面是否有引號等特殊符號。上面是一個簡單的例子,通過提交精心設計的參數,還可以修改你的資料庫。
㈦ SQL注入最有效的防禦方式是什麼
注入方式:ql注入,就是通過把sql命令插入到web表單遞交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的sql命令。防禦:如果是.net的後台
比如sql語句是
id='"+
textbox.text
+"'
就會被注入,
如果[email protected]("@id",textbox.text)
這樣就可以。用replace把單引等特殊字元替換也行
㈧ SQL注入怎麼防範
SQL注入攻擊的危害很大,而且防火牆很難對攻擊行為進行攔截,主要的SQL注入攻擊防範方法,具體有以下幾個方面:
1、分級管理
對用戶進行分級管理,嚴格控制用戶的許可權,對於普通用戶,禁止給予資料庫建立、刪除、修改等相關許可權,只有系統管理員才具有增、刪、改、查的許可權。
2、參數傳值
程序員在書寫SQL語言時,禁止將變數直接寫入到SQL語句,必須通過設置相應的參數來傳遞相關的變數。從而抑制SQL注入。數據輸入不能直接嵌入到查詢語句中。同時要過濾輸入的內容,過濾掉不安全的輸入數據。或者採用參數傳值的方式傳遞輸入變數,這樣可以最大程度防範SQL注入攻擊。
3、基礎過濾與二次過濾
SQL注入攻擊前,入侵者通過修改參數提交and等特殊字元,判斷是否存在漏洞,然後通過select、update等各種字元編寫SQL注入語句。因此防範SQL注入要對用戶輸入進行檢查,確保數據輸入的安全性,在具體檢查輸入或提交的變數時,對於單引號、雙引號、冒號等字元進行轉換或者過濾,從而有效防止SQL注入。
當然危險字元有很多,在獲取用戶輸入提交參數時,首先要進行基礎過濾,然後根據程序的功能及用戶輸入的可能性進行二次過濾,以確保系統的安全性。
4、使用安全參數
SQL資料庫為了有效抑制SQL注入攻擊的影響。在進行SQLServer資料庫設計時設置了專門的SQL安全參數。在程序編寫時應盡量使用安全參數來杜絕注入式攻擊,從而確保系統的安全性。
5、漏洞掃描
為了更有效地防範SQL注入攻擊,作為系統管理除了設置有效的防範措施,更應該及時發現系統存在SQL攻擊安全漏洞。系統管理員可以采購一些SQL漏洞掃描工具,通過專業的掃描工具,可以及時的掃描到系統存在的相應漏洞。
6、多層驗證
現在的網站系統功能越來越龐大復雜。為確保系統的安全,訪問者的數據輸入必須經過嚴格的驗證才能進入系統,驗證沒通過的輸入直接被拒絕訪問資料庫,並且向上層系統發出錯誤提示信息。同時在客戶端訪問程序中驗證訪問者的相關輸入信息,從而更有效的防止簡單的SQL注入。但是如果多層驗證中的下層如果驗證數據通過,那麼繞過客戶端的攻擊者就能夠隨意訪問系統。因此在進行多層驗證時,要每個層次相互配合,只有在客戶端和系統端都進行有效的驗證防護,才能更好地防範SQL注入攻擊。
7、資料庫信息加密
傳統的加解密方法大致分為三種:對稱加密、非對稱加密、不可逆加密。