av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

企業(yè)應當如何應對SQL注入式攻擊

對于使用MSSQL數(shù)據(jù)庫的網(wǎng)站來說,如果沒有對SQL注入式攻擊進行防御那么將受到致命的打擊。關于對付SQL注入攻擊的方法已經有許多討論,但是為什么還是有大量的網(wǎng)站不斷地遭受其魔掌呢?安全研究人員認為,現(xiàn)在正是重新梳理最佳方法來對付大規(guī)模的SQL注入攻擊的時候,從而減輕與注入攻擊相關的風險。筆者在此介紹的這些方法未必是革命性的創(chuàng)舉,但是又有多少企業(yè)真正按照要求全面地實施這些方法呢?

下面,我們將一一談論這些方法:

應對SQL注入式攻擊之使用參數(shù)化查詢

企業(yè)應當制定并強化自行開發(fā)軟件的安全編碼指南,要求開發(fā)人員使用參數(shù)化查詢來構建SQL查詢,這樣就可以將數(shù)據(jù)與代碼區(qū)分開來。

對于多數(shù)SQL查詢來說,開發(fā)人員需要指明某類標準,為此,就需要利用參數(shù)化查詢,其實就是在運行時可傳遞的參數(shù)。參數(shù)化查詢就是在SQL語句中有一個或多個嵌入?yún)?shù)的查詢。這種將參數(shù)嵌入到SQL語句中的方法與動態(tài)構造SQL字符串相比,不易產生錯誤。下面我們看一個在.NET應用程序中使用參數(shù)化查詢的例子。假設我們想給張三增加工資500元,可參考如下的代碼。這些代碼范例演示了參數(shù)化查詢的使用,并展示了如何使用更新語句:

通過利用SQL的更新命令,你可以更新記錄。在上面的例子中,我們作了如下操作:創(chuàng)建并打開一個數(shù)據(jù)庫鏈接;創(chuàng)建一個代表執(zhí)行更新語句的數(shù)據(jù)庫命令;使用EDBCommand 的ExecuteNonQuery()方法執(zhí)行插入命令。

每一個參數(shù)都用一個EDBParameter對象指明。對于需要在SQL語句中指定的每一個參數(shù)來說,你需要創(chuàng)建一個EDBParameter對象,然后將值指派給這個對象。然后,將EDBParameter對象添加到EDBCommand命令的參數(shù)集中。

對于多數(shù)開發(fā)平臺來說,應當使用參數(shù)化的語句而不是將用戶輸入嵌入到語句中。在許多情況下,SQL語句是固定的,每一個參數(shù)都是一個標量,而不是一個表。用戶輸入會被指派給一個參數(shù)。下面再給出一個使用Java和JDBC API的例子:

PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE USERNAME=? AND PASSWORD=?");

prep.setString(1, username);

prep.setString(2, password);

prep.executeQuery();

筆者用這些例子只是想告訴開發(fā)人員,應當確保在查詢數(shù)據(jù)庫之前對輸入進行凈化。要保障用戶輸入到網(wǎng)站的內容就是你正要查找的數(shù)據(jù)類型,所以說,如果你正在尋找一個數(shù)字,就要努力保障這種輸入一定是一個數(shù)字而非字符。

應對SQL注入式攻擊之實施過濾和監(jiān)視工具

在Web應用程序和數(shù)據(jù)庫這個水平上的過濾和監(jiān)視工具可有助于阻止攻擊并檢測攻擊行為,從而減輕暴露在大規(guī)模的SQL注入式攻擊中的風險。

在應用程序水平上,企業(yè)應當通過實施運行時的安全監(jiān)視來防御SQL注入攻擊和生產系統(tǒng)中的漏洞。同樣地,Web應用防火墻也有助于企業(yè)部署某些基于行為的規(guī)則集,可以在發(fā)生損害之前阻止攻擊。

在數(shù)據(jù)庫水平上,數(shù)據(jù)庫活動監(jiān)視還可以從后臺過濾攻擊。數(shù)據(jù)庫的監(jiān)視活動是對付SQL注入的一種很強大的工具。對于目前所知道的注入攻擊而言,應當部署好過濾器,以便向數(shù)據(jù)庫管理員發(fā)出警告:正在發(fā)生不太安全的問題;還要有一些一般的過濾器,用以查找SQL注入攻擊中的典型伎倆,如破壞SQL代碼的不規(guī)則的數(shù)字引用等。

應對SQL注入式攻擊之精心編制錯誤消息

黑客可以利用你的錯誤消息,以便于將來對付你。所以開發(fā)團隊和數(shù)據(jù)庫管理員都需要考慮:在用戶輸入某些出乎意料的“數(shù)據(jù)”時,應當返回的錯誤消息。

企業(yè)應當配置Web服務器和數(shù)據(jù)庫服務器,使其不輸出錯誤或警告消息。因為攻擊者可以利用“盲目SQL注入”等技術來了解你的數(shù)據(jù)庫設計細節(jié)。

應對SQL注入式攻擊之及時打補丁并強化數(shù)據(jù)

由于沒有打補丁或者配置錯誤,而造成與Web應用程序相關聯(lián)的數(shù)據(jù)庫遭受攻擊,那么與SQL注入攻擊相關的風險也會因之增加。

很顯然,只要有補丁可用,你就需要給數(shù)據(jù)庫打補丁,并且還要給Web應用程序和Web服務打補丁。

此外,別忘了你的數(shù)據(jù)庫是怎樣配置的。你需要禁用不必要的服務和功能,目的是為了強化數(shù)據(jù)庫及其賴以運行的操作系統(tǒng)。

應對SQL注入式攻擊之限制數(shù)據(jù)庫的特權

最后,企業(yè)需要更好地管理與Web應用程序相關的賬戶與后臺數(shù)據(jù)庫交互的方式。許多問題之所以發(fā)生,其原因在于數(shù)據(jù)庫管理員全面開放了一些賬戶,其目的是為了讓開發(fā)人員更輕松地工作。但是,這些超級用戶賬戶極易遭受攻擊,并會極大地增加由SQL注入攻擊及其它Web攻擊給數(shù)據(jù)庫所造成的風險。

一定要正確地管理所有的賬戶,使其僅能以最低的特權訪問后臺的數(shù)據(jù)庫,當然前提是能夠完成其工作。你一定要保障這些賬戶不會擁有對數(shù)據(jù)庫作出更改的權利。


網(wǎng)站題目:企業(yè)應當如何應對SQL注入式攻擊
網(wǎng)頁URL:http://uogjgqi.cn/article/djeghsd.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流