Django-常見的web攻擊,及如何防止
阿新 • • 發佈:2019-02-14
一.sql注入攻擊及防範
1.危害
- sql注入攻擊的危害:非法讀取、篡改、刪除資料庫中的資料
- 盜取使用者的各種敏感資訊,獲取利益
- 通過修改資料庫來修改網頁上的內容
- 注入木馬
- 等等
2.防範
- django的orm查詢和form表單驗證都過濾了sql注入攻擊
3.漏洞原理
- 若用原生的查詢方式,可以通過輸入單引號 1=1(如:‘OR 1=1#)等特殊字元使原生的SQL語句程式碼被改變。
4.防範原理
- 轉義 單引號 1=1(如:‘OR 1=1#)等特殊字元
二.XSS(跨站指令碼攻擊)攻擊及防範
1.危害
- 盜取各種使用者賬號,如使用者網銀賬號、各種管理員賬號
- 盜取企業重要的具有商業價值的資料
- 非法轉賬
- 控制受害者機器向其他網站發起攻擊、注入木馬
- 等等
2.防範
- 表單驗證長度
- 儘量採用POST而非GET提交表單
- 避免直接在cookie中洩漏使用者隱私
3.漏洞原理
- 網站地址後面會帶引數,如name='iphone6'
- 黑客發現漏洞後,將name='iphone6'改為:name=<script>x=document.cookie;alert(x);</script>,將傳遞了js程式碼(這個程式碼看黑客怎麼寫)
- 黑客裝作原網站給受害者傳送了一個帶有該js程式碼引數的網站連結
- 黑客獲得cookie
- 黑客就可以偽裝受害者獲取受害者的資訊。
- 總結:漏洞就是後端中沒有過濾xss攻擊的程式碼欄位
4.防範原理
- 首先程式碼裡對使用者輸入的地方和變數都需要仔細檢查長度和對 < , > , ; , ' 等字元做過濾。轉義特殊字元。
- 避免直接在cookie中洩漏使用者隱私,例如email、密碼等等通過使cookie和系統ip繫結來降低cookie洩漏後的危險
- 儘量採用POST而非GET提交表單
三.csrf(跨站請求偽造)攻擊及防範
1.危害
- 以受害者的名義傳送郵件
- 盜取受害者的賬號
- 購買商品
- 虛擬貨幣的轉賬
2.防範
- 表單提交中新增{% csrf_token %}
3.漏洞原理
- 黑客知道mybank網站的轉賬流程
- 受害者在沒有登出A網站的情況下訪問黑客的網站
- 黑客的網站有一個圖片,圖片的url地址是A網站的一個請求轉賬的url,如:<img src=http://www.mybank.com/Transfer/toBankId=11 & money=1000 >
- 或者網站載入過程,js程式碼就默默的提交請求。
- 受害者點選圖片就在不知情的情況下轉賬給了黑客1000塊錢
4.防範原理
- 後端接收csrf_token值進行判斷