13161216443

您所在位置: 首頁> 學習課程> python培訓班 | Python Web安全開發注意點

python培訓班 | Python Web安全開發注意點

發布百知教育 來源:學習課程 2019-12-04

因為之前運用 django框架不規范的開發,寫了一堆web漏洞,之后學習了一波web安全開發,做一個學習筆記。下面就針對這些常用問題做一些總結。都是基礎,大神勿噴。


No.3

sql注入

雖然現在很多直接運用ORM映射到數據庫,這一塊問題不大。但是在處理大數據多表聯合查詢的時候速度不如原生sql語句快,運用了mysqldb的庫,導致會有危險。但是也有應對辦法。


python培訓班


圖1 圖2 兩個是有差別的,圖二可以直接把單引號轉義掉。第二種辦法,在進入sql語句前,先進行一波正則匹配。比如對數字進行int—>str—>int 強轉,對一些敏感字符,例如select,> ,<,進行篩選。對字數進行限制等。


No.4

host頭驗證

漏洞檢查,f12抓包,修改Host字段值,發送,查看響應中是否包含修改后的Host字段值。解決辦法,使用django.http.HttpRequest.get_host() 可以獲取到host,有偽造的話直接報錯了,如果直接訪問request.META則沒有這效果。


No.5

跨站點腳本攻擊XSS

為了搜集用戶信息,攻擊者通常會在有漏洞的程序中插入 JavaScript、VBScript、 ActiveX或Flash以欺騙用戶。一旦得手,他們可以盜取用戶帳戶,修改用戶設置,盜取/污染cookie,做虛假廣告等。大致分為三步,.HTML注入。需要向web頁面注入惡意代碼;第二,這些惡意代碼能夠被瀏覽器成功的執行;解決辦法,第一,在表單提交或者url參數傳遞前,對需要的參數進行過濾;第二,在后臺對從數據庫獲取的字符串數據進行過濾,判斷關鍵字。第三, django框架內部機制默認阻止了。它會判定傳入的字符串是不安全的,就不會渲染而以字符串的形式顯示。所以寫了safe,要嚴謹。


No.6

csrf跨站請求偽造

舉個例子,你點了A網站的前端,卻對B網站的后端進行操作,比如轉賬啥的。因為A網站盜取了之前B的cookie,然后讓B后端誤認為是自己人。解決辦法,django自帶中間件保護。


python培訓班


第二,使用jwt進行驗證。每次交互都增加jwt,退出后jwt加入redis的jwt的黑名單,jwt自帶過期。


No.7

文件上傳

文件上傳漏洞通常由于網頁代碼中的文件上傳路徑變量過濾不嚴造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件后綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站后門文件(webshell),進而遠程控制網站服務器。解決辦法,第一,進行路徑,不向前端戰術目錄路徑,第二,對后綴名進行過濾,第三,對文件大小進行判斷。


No.8

越權操作

攻擊者繞過前端直接發包,更改用戶信息進行窺探數據庫甚至對數據庫進行惡意攻擊。解決辦法,所有的數據都進行用戶權限校驗,對數據進行用戶校驗,用戶數據來源于jwt,使用后端和腳本交互增加公私鑰(RSA)(雖然也不太安全但是好過沒有)。


No.9

總結語

網站就像人體,前端防護就好似皮膚,皮膚并不可靠,免疫細胞強大才是真的強大(一切輸入都是不可靠的,做好嚴格過濾。)


python培訓班:http://www.onhairsalon.com/python2019



由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,雷神眾測以及文章作者不為此承擔任何責任。


雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。


注釋:本文內容來自公眾號雷神眾測


上一篇:轉行這件事兒,到底難不難?

下一篇:應屆生去公司找個Java程序員的職位需要什么技能?

相關推薦

www.onhairsalon.com

有位老師想和您聊一聊

關閉

立即申請