激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 如何有效防止sql注入的方法

如何有效防止sql注入的方法

2021-08-08 22:25Java旅途 Sql Server

SQL注入攻擊是黑客對數據庫進行攻擊常用的手段之一,本文主要介紹了如何如何有效防止sql注入,需要的朋友們下面隨著小編來一起學習學習吧

sql注入攻擊是黑客對數據庫進行攻擊常用的手段之一,隨著b/s模式應用開發的發展,使用這種模式編寫應用程序的程序員也越來越多。但是由于程序員的水平及經驗參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想獲取的數據,這就是所謂的sql injection,即sql注入。

一 背景

假如某高校開發了一個網課系統,要求學生選課后完成學習,數據庫中有一張表course,這張表存放著每個學生的選課信息及完成情況,具體設計如下:

如何有效防止sql注入的方法

數據如下:

如何有效防止sql注入的方法

本系統采用mysql做為數據庫,使用jdbc來進行數據庫的相關操作。系統提供了一個功能查詢該學生的課程完成情況,代碼如下。

二 注入攻擊演示

1. 正常情況下查詢一個學生所選課程及完成情況只需要傳入student_id,便可以查到相關數據。

如何有效防止sql注入的方法

根據響應結果,我們很快便能寫出對應的sql,如下:

2. 如果我們想要獲取這張表的所有數據,只需要保證上面這個sql的where條件恒真就可以了。

請求接口的時候將studendid 設置為4 or 1 = 1,這樣這條sql的where條件就恒真了。sql也就等同于下面這樣

請求結果如下,我們拿到了這張表的所有數據

如何有效防止sql注入的方法

3. 查詢mysql版本號,使用union拼接sql

如何有效防止sql注入的方法

4. 查詢數據庫名

如何有效防止sql注入的方法

5. 查詢mysql當前用戶的所有庫

如何有效防止sql注入的方法

看完上面這些演示后,你害怕了嗎?你所有的數據配置都完全暴露出來了,除此之外,還可以完成很多操作,更新數據、刪庫、刪表等等。

三 如何防止sql注入

1. 代碼層防止sql注入攻擊的最佳方案就是sql預編譯

這樣我們傳進來的參數 4 or 1 = 1就會被當作是一個student_id,所以就不會出現sql注入了。

2. 確認每種數據的類型,比如是數字,數據庫則必須使用int類型來存儲

3. 規定數據長度,能在一定程度上防止sql注入

4. 嚴格限制數據庫權限,能最大程度減少sql注入的危害

5. 避免直接響應一些sql異常信息,sql發生異常后,自定義異常進行響應

6. 過濾參數中含有的一些數據庫關鍵詞

到此這篇關于如何有效防止sql注入的方法的文章就介紹到這了,更多相關sql防止注入內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/zhixie/p/13488704.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美视频国产精品 | 欧美激情视频一区二区免费 | 亚洲午夜影院在线观看 | 久草高清视频 | 毛片免费在线播放 | 视频一区二区三区中文字幕 | 在线成人免费网站 | 成人电影毛片 | 鲁丝片一区二区三区免费入口 | 精品亚洲一区二区三区 | 亚州精品在线视频 | 亚洲精品一区二区三区在线看 | 久草最新网址 | 羞羞色院91精品网站 | 精品亚洲午夜久久久久91 | 国产毛片毛片 | 国产成人在线播放视频 | 免费在线观看中文字幕 | 欧美黄一区| 一级一级一级一级毛片 | 日本视频免费看 | 91av在线免费| 二区三区在线观看 | 欧美a久久 | 欧美黄色一级带 | 亚洲国产色婷婷 | 欧美色视 | 高清国产在线 | 国产精品999在线观看 | 黄色毛片免费视频 | 日韩黄色免费观看 | 国语自产免费精品视频在 | 久久久久久久免费看 | 亚洲精品7777xxxx青睐 | 欧美大胆xxxx肉体摄影 | 国产精品欧美久久久久一区二区 | 毛片在线播放视频 | 三人弄娇妻高潮3p视频 | 桥本有菜免费av一区二区三区 | 久久视频在线免费观看 | 黄色羞羞 |