国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

服務器之家 - 數據庫 - Mysql - 防止web項目中的SQL注入

防止web項目中的SQL注入

2022-01-19 17:51申不二 Mysql

這篇文章介紹了防止web項目中的SQL注入,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。需要的朋友可以收藏下,方便下次瀏覽觀看

一、SQL注入簡介

SQL注入是比較常見的網絡攻擊方式之一,它不是利用操作系統的BUG來實現攻擊,而是針對程序員編寫時的疏忽,通過SQL語句,實現無賬號登錄,甚至篡改數據庫。

二、SQL注入攻擊的總體思路

  • 1.尋找到SQL注入的位置
  • 2.判斷服務器類型和后臺數據庫類型
  • 3.針對不同的服務器和數據庫特點進行SQL注入攻擊

三、SQL注入攻擊實例

比如在一個登錄界面,要求輸入用戶名和密碼:

可以這樣輸入實現免帳號登錄:

用戶名: ‘or 1 = 1 –

密 碼:

點登陸,如若沒有做特殊處理,那么這個非法用戶就很得意的登陸進去了.(當然現在的有些語言的數據庫API已經處理了這些問題)

這是為什么呢? 下面我們分析一下:

從理論上說,后臺認證程序中會有如下的SQL語句:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String sql = "select * from user_table where username=
' "+userName+" ' and password=' "+password+" '";
 
當輸入了上面的用戶名和密碼,上面的SQL語句變成:
SELECT * FROM user_table WHERE username=
''or 1 = 1 -- and password=''
 
"""
分析SQL語句:
條件后面username=”or 1=1 用戶名等于 ” 或1=1 那么這個條件一定會成功;
 
然后后面加兩個-,這意味著注釋,它將后面的語句注釋,讓他們不起作用,這樣語句永遠都能正確執行,用戶輕易騙過系統,獲取合法身份。
這還是比較溫柔的,如果是執行
SELECT * FROM user_table WHERE
username='' ;DROP DATABASE (DB Name) --' and password=''
其后果可想而知…
"""

四、如何防御SQL注入

注意:但凡有SQL注入漏洞的程序,都是因為程序要接受來自客戶端用戶輸入的變量或URL傳遞的參數,并且這個變量或參數是組成SQL語句的一部分,

對于用戶輸入的內容或傳遞的參數,我們應該要時刻保持警惕,這是安全領域里的「外部數據不可信任」的原則,縱觀Web安全領域的各種攻擊方式,

大多數都是因為開發者違反了這個原則而導致的,所以自然能想到的,就是從變量的檢測、過濾、驗證下手,確保變量是開發者所預想的。

1、檢查變量數據類型和格式

如果你的SQL語句是類似where id={$id}這種形式,數據庫里所有的id都是數字,那么就應該在SQL被執行前,檢查確保變量id是int類型;如果是接受郵箱,那就應該檢查并嚴格確保變量一定是郵箱的格式,其他的類型比如日期、時間等也是一個道理。總結起來:只要是有固定格式的變量,在SQL語句執行前,應該嚴格按照固定格式去檢查,確保變量是我們預想的格式,這樣很大程度上可以避免SQL注入攻擊。

比如,我們前面接受username參數例子中,我們的產品設計應該是在用戶注冊的一開始,就有一個用戶名的規則,比如5-20個字符,只能由大小寫字母、數字以及一些安全的符號組成,不包含特殊字符。此時我們應該有一個check_username的函數來進行統一的檢查。不過,仍然有很多例外情況并不能應用到這一準則,比如文章發布系統,評論系統等必須要允許用戶提交任意字符串的場景,這就需要采用過濾等其他方案了。

2、過濾特殊符號

對于無法確定固定格式的變量,一定要進行特殊符號過濾或轉義處理。

3、綁定變量,使用預編譯語句

MySQL的mysqli驅動提供了預編譯語句的支持,不同的程序語言,都分別有使用預編譯語句的方法

實際上,綁定變量使用預編譯語句是預防SQL注入的最佳方式,使用預編譯的SQL語句語義不會發生改變,在SQL語句中,變量用問號?表示,黑客即使本事再大,也無法改變SQL語句的結構

小結:

  • 1.使用預編譯綁定變量的SQL語句
  • 2.嚴格加密處理用戶的機密信息
  • 3.不要隨意開啟生產環境中Webserver的錯誤顯示
  • 4.使用正則表達式過濾傳入的參數
  • 5.字符串過濾
  • 6.檢查是否包函非法字符

總的來說,防范一般的SQL注入只要在代碼規范上下點功夫就能預防

以上所述是小編給大家介紹的防止web項目中的SQL注入,希望對大家有所幫助。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://www.cnblogs.com/shenbuer/p/7875419.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线观看中文字幕亚洲 | av高清在线看 | 午夜激情影院 | 精品国产精品三级精品av网址 | 久久久久久免费毛片精品 | 欧美狠狠操| 国产精品久久久久久久久久免费 | 久久免费公开视频 | 国产精品久久久久久久久久免费 | 日韩免费一区 | 精品一区二区三区免费毛片 | 日韩电影在线免费观看 | 亚洲精品一区二三区不卡 | 一区二区免费视频 | 91在线精品一区二区三区 | 午夜私人影院 | 亚洲精品乱码久久久久久金桔影视 | 久久久久久久国产精品 | 久久99精品久久久久久国产越南 | 亚洲在线| 亚洲视频一区在线观看 | 亚洲成av人片在线观看香蕉 | 精品国产乱码久久久久久久软件 | 四虎在线观看 | 国产精品视频导航 | 精品一区二区三区蜜桃 | 综合色爱 | 亚洲综合在线视频 | 三级黄色在线视频 | 91麻豆精品国产91久久久资源速度 | 中文字幕在线视频第一页 | 国产激情一区二区三区成人免费 | 久久亚洲国产 | 亚洲一区av | 成人高清免费观看 | 成人免费视频网址 | 精品日韩在线 | 亚洲 欧美 国产 制服 动漫 | 国产黄色免费网站 | 国产欧美高清在线观看 | 欧美视频免费在线 |