中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      SQL注入攻擊與防范

      時(shí)間:2024-07-29 12:04:30 SQL 我要投稿
      • 相關(guān)推薦

      關(guān)于SQL注入攻擊與防范

        隨著網(wǎng)絡(luò)的普及,關(guān)系數(shù)據(jù)庫的廣泛應(yīng)用,網(wǎng)絡(luò)安全越來越重要。下面是YJBYS小編為大家搜索整理了關(guān)于SQL注入攻擊與防范,歡迎參考閱讀,希望對大家有所幫助。想了解更多相關(guān)信息請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生培訓(xùn)網(wǎng)!

        一、 SQL注入攻擊

        簡言之,SQL注入是應(yīng)用程序開發(fā)人員未預(yù)期地把SQL代碼傳入到應(yīng)用程序的過程。它由于應(yīng)用程序的糟糕設(shè)計(jì)而成為可能,并且只有那些直接使用用戶提供的值構(gòu)建SQL語句的應(yīng)用程序才會受影響。

        例如:用戶輸入客戶ID后,GridView顯示客戶的全部行記錄。在一個(gè)更加真實(shí)的案例中,用戶還要輸入密碼之類的驗(yàn)證信息,或者根據(jù)前面的登錄頁面得到用戶ID,可能還會有一些用戶輸入關(guān)鍵信息的文本框,如訂單的日期范圍或產(chǎn)品名稱。問題在于命令是如何被執(zhí)行的。在這個(gè)示例中,SQL語句通過字符串構(gòu)造技術(shù)動(dòng)態(tài)創(chuàng)建。文本框txtID的值被直接復(fù)制到字符串中。下面是代碼:

        在這個(gè)示例中,攻擊者可以篡改SQL語句。通常,攻擊的第一個(gè)目標(biāo)是得到錯(cuò)誤信息。如果錯(cuò)誤沒有被恰當(dāng)處理,底層的信息就會暴露給攻擊者。這些信息可用于進(jìn)一步攻擊。

        例如,想象一下在文本一下在文本框中輸入下面的字符串會發(fā)生什么?

        ALFKI'OR '1'='1

        再看看因此生成的完整SQL語句:

        這條語句將返回所有的訂單記錄,即便那些訂單不是由ALFDI創(chuàng)建,因?yàn)閷γ恳恍卸远行?=1總是true。這樣產(chǎn)生的后果是沒有顯示當(dāng)前用戶特定信息,卻向攻擊者顯示了全部資料,如果屏幕上顯示的是敏感信息,如社會保險(xiǎn)號,生日或信用卡資料,就會帶來嚴(yán)重的問題。事實(shí)上,這些簡單的SQL注入往往是困擾那些大型電子商務(wù)公司的麻煩。一般而言,攻擊點(diǎn)不在于文本框而在于查詢字符串(可被用于向數(shù)據(jù)庫傳送值,如列表頁向詳細(xì)信息頁面?zhèn)魉臀ㄒ粯?biāo)識符)。

        還可以進(jìn)行更復(fù)雜的攻擊。例如,攻擊者可以使用兩個(gè)連接號(--)注釋掉SQL語句的剩余部分。這樣的攻擊只限于SQL Server,不過對于其他類型的數(shù)據(jù)庫也有等效的辦法,如MySql使用(#)號,Oracle使用(;)號。另外攻擊者還可以執(zhí)行含有任意SQL語句的批處理命令。對于SQL Server提供程序,攻擊者只需在新命令前加上分號(;)。攻擊者可以采用這樣的方式刪除其他表的內(nèi)容,甚至調(diào)用SQL Server的系統(tǒng)存儲過程xp_cmdshell在命令執(zhí)行任意的程序。

        下面是攻擊者在文本框中輸入的,它的攻擊目標(biāo)是刪除Customers表的全部行。

        LUNCHUN’;DELETE*FROM Customers--

        二、防范

        如何預(yù)防SQL注入攻擊呢?需要記住幾點(diǎn)。首先,使用TextBox.MaxLength屬性防止用戶輸入過長的字符是一個(gè)好辦法。因?yàn)樗鼈儾粔蜷L,也就減少了貼入大量腳本的可能性。其次,要使用ASP.NET驗(yàn)證控件鎖定錯(cuò)誤的數(shù)據(jù)(如文本、空格、數(shù)值中的特殊字符)。另外,要限制錯(cuò)誤信息給出的提示。捕獲到數(shù)據(jù)庫異常時(shí),只顯示一些通用的信息(如“數(shù)據(jù)源錯(cuò)誤”)而不是顯示Exception.Message屬性中的信息,它可能暴露了系統(tǒng)攻擊點(diǎn)。

        更為重要的是,一定要小心去除特殊字符。比如,可以將單引號替換為兩個(gè)單引號,這樣它們就不會和SQL語句的分隔符混淆:

        string ID=txtID.Text().Replace(“’”,”’’”);

        當(dāng)然,如果文本確實(shí)需要包含單引號,這樣做就引入了其他麻煩。另外,某些SQL注入攻擊還是可行的。替換單引號可以防止用戶提前結(jié)束一個(gè)字符串,然而,如果動(dòng)態(tài)構(gòu)建含有數(shù)值的SQL語句,SQL注入攻擊又有發(fā)揮的空間了。這個(gè)漏洞常被(這是很危險(xiǎn)的)忽視。更好的解決辦法是使用參數(shù)化的命令或使用存儲過程執(zhí)行轉(zhuǎn)義以防止SQL注入攻擊。

        另一個(gè)好建議是限制用于訪問數(shù)據(jù)庫的賬號的權(quán)限。這樣該賬號將沒有權(quán)限訪問其他數(shù)據(jù)庫或執(zhí)行擴(kuò)展的存儲過程。不過這樣并不能解決SQL腳本注入的問題,因?yàn)橛糜谶B接數(shù)據(jù)庫的進(jìn)程幾乎總是需要比任意單個(gè)用戶更大的權(quán)限。通過限制權(quán)限,可以預(yù)防刪除表的攻擊,但不能阻止攻擊者偷看別人的信息

        三、POST注入攻擊

        精明的用戶可能會知道還有另外一個(gè)Web控件攻擊的潛在途徑。雖然參數(shù)化的命令防止了SQL注入攻擊,但它們不能阻止攻擊者向回發(fā)到服務(wù)器的數(shù)據(jù)添加惡意的值。如果不檢查這些值,就使得攻擊者可以提交本來不可能存在的控件值。

        例如,假設(shè)你有一個(gè)顯示當(dāng)前用戶訂單的列表。狡詐的攻擊者可能保存該頁面的一個(gè)本地副本,修改HTML內(nèi)容向列表添加更多的項(xiàng)目,然后選擇某個(gè)“假”的項(xiàng)目。如果攻擊成功,攻擊者就能夠看到其他用戶訂單,這顯然是一個(gè)問題。幸好,ASP.NET使用一個(gè)很少被提及的叫做“事件驗(yàn)證”的特性來防止這種攻擊。事件驗(yàn)證檢查回發(fā)到服務(wù)器的數(shù)據(jù)并驗(yàn)證其中值的合法性。例如,如果回發(fā)的數(shù)據(jù)表明用戶選擇了一個(gè)沒有意義的數(shù)據(jù)(因?yàn)樗诳丶胁⒉淮嬖?,ASP.NET就產(chǎn)生一個(gè)錯(cuò)誤并停止處理。可以在Page指令中設(shè)置EnableEventValidation特性為false來禁用事件驗(yàn)證。創(chuàng)建使用客戶端腳本動(dòng)態(tài)改變內(nèi)容的頁面時(shí),需要執(zhí)行這一步。不過,此時(shí)在使用這些值之前要注意檢查潛在的POST注入攻擊。

      【SQL注入攻擊與防范】相關(guān)文章:

      PHP防止SQL注入的例子09-25

      網(wǎng)絡(luò)攻擊的常見手法及其防范措施01-23

      oracle的sql語句01-21

      SQL優(yōu)化大全09-09

      SQL查詢語句大全10-24

      SQL語句的理解原則10-05

      PHP對象注入的實(shí)例分析08-27

      mysql SQL語句積累參考10-02

      執(zhí)行sql原理l分析05-12

      SQL中的單記錄函數(shù)08-12

      主站蜘蛛池模板: 久久精品国产亚洲av热九| 亚洲综合一区二区三区蜜臀av | 精品免费久久久久国产一区| 亚洲国产剧情在线精品视| 太大太粗太爽免费视频| 孝义市| 国产亚洲曝欧美不卡精品| 中文字幕大乳少妇| 91精品国产闺蜜国产在线| 亚洲女同视频在线观看| 大邑县| 新营市| 每日手机在线观看av| 国产男女做爰猛烈视频网站 | 亚洲视频在线观看青青草| 成人性色生活片免费毛片| 国产亚洲精选一区二区| 人妖熟女少妇人妖少妇| 邓州市| 东平县| 宜章县| 夹江县| 泰安市| 遂川县| 连云港市| 寻乌县| 午夜爽毛片| 视频精品熟女一区二区三区| 白山市| 保定市| 在线视频一区二区亚洲| 91精品一区二区三区蜜桃| 中超| 精品一区二区三区在线视频观看| 榆树市| 亚洲无码毛片免费视频在线观看| 国产成人精品cao在线| 91九色蝌蚪国产精品| 成人精品毛片在线观看| 亚洲AV秘 无码一区二区久久| 插进去内射视频免费观看|