新時代的前端還須要懂得網絡安全

前言

隨着學習的深刻,已經不只僅只知足於編寫前端的代碼,把一個事情的問題看到更多更深遠的地方去,慢慢了解網絡訪問的安全問題,勢在必行。php

開始

學習資料內容,基本從書本上獲取,結合本身的理解,闡述出來,總結,在開始學習安全問題以前,咱們必須先要了解,爲何會會有安全問題產生html

從輸入url到頁面顯示經歷了怎麼一個過程

  1. 頁面輸入url
  2. 瀏覽器會經過url尋找到dns服務器
  3. 根據dns服務器找到ip地址
  4. 根據ip地址訪問到咱們服務器中(如今通常是nginx)
  5. nginx設置安全訪問以及過濾請求到咱們服務器中的文件
  6. 後臺代碼響應url的請求(頁面就返回文件,請求返回相應的內容)
  7. 頁面渲染

簡單的來說就是,url->dns->nginx->java(php)->browser,其中dns獲取到ip地址以後,瀏覽器會發送一個http請求,至於http請求,能夠看個人上一篇文章前端

從頭開始理解http吧java

DNS挾持

頁面輸入url以後,經過特殊的方法(這裏不詳細描述)將原域名的DNS解析權弄到手,修改掉原先的ip地址,將DNS指向攻擊者的ip地址nginx

預防sql

  1. 啓用備用域名,當其中一個域名被劫持以後,使用備用域名
  2. 手動修改DNS,將其改成114.114.114.114,備用DNS服務器改成8.8.8.8
  3. 修改瀏覽器的登陸密碼
  4. 將DNS轉爲http DNS解析

http挾持

通常是響應html的請求時候,運營商進行挾持,嵌入廣告而後用iframe返回原網站內容,即在http傳輸過程當中,篡改響應體數據庫

預防後端

  1. 使用https協議,保證咱們的服務器可以確保接收到請求

sql注入

union注入攻擊

可以造成union注入攻擊的條件
  1. where 條件後面可帶字符串,如:id=1與id=1`返回不一樣的結果
  2. 接口請求可以返回數據庫數據
union注入攻擊的方式
  1. 經過orderby來獲取字段數
  2. 在搜索條件以後寫上union(select 1,2,3【字段長度】)獲取可輸入的位置
  3. 在可輸入sql語句的位置輸入database(),獲取數據庫名稱
  4. 而後經過數據庫名稱,來獲取表名稱
  5. 最後經過表名稱,獲取字段名稱,並添加數據或者修改數據
防範方式
  1. 嚴格監控傳入的數據,避免輸入內容存在特殊值
  2. 前端沒辦法控制這個方案,只能在頁面上控制,若是單獨拎出來接口進行調試,那隻能靠後端對數據進行驗證

Boolean注入攻擊

構造sql判斷語句,經過返回結果判斷哪些條件是成立的,以及獲取數據庫中的數據瀏覽器

造成Boolean注入攻擊的條件
  1. 返回的結果一直爲yes or no , 不返回數據庫數據
Boolean注入的攻擊方式
  1. 輸入 leagth(database())>=nums
  2. 不斷的判斷長度以後,而後確認長度,在逐字進行判斷使用substr方法
  3. 經過相似的方法,判斷出數據庫中的表名跟字段名
防範方式

一樣的,須要處理輸入內容,發現異常字符串,直接返回錯誤或者禁止訪問安全

注入方式還有其餘方法,相似於報錯注入,時間注入,堆疊注入等等注入方式,有興趣能夠去百度查一查,雖然都是大同小異。 現階段的各類後端框架通常都對sql注入進行了校驗,除非本身手寫sql而後拼接內容,不然正常狀況下是不會存在sql注入的風險,固然很強的黑客技術除外,我只是個小萌新的看法

XSS

一種針對網站應用程序的安全漏洞攻擊技術,是代碼注入的一種。它容許惡意用戶將代碼注入頁面,其餘用戶在瀏覽網頁時會受到影響。

XSS攻擊分爲3中,反射型XSS、存儲型XSS、dom型XSS

反射型XSS

攻擊者會經過各類方式發送包含XSS代碼的連接,而後用戶打開連接並輸入其內容以後,服務端會返回包含XSS代碼的惡意腳本,並觸發。

存儲型XSS

將XSS內容存入數據庫中,只要有人訪問這個網頁就會觸發XSS代碼,多用於論壇,留言板等須要長段內容輸入的地方

dom型XSS

實際上也屬於反射型XSS,使用dom對象去處理XSS代碼,攻擊者將專門設計過的url發送給用戶,用戶打開連接,瀏覽器就相應其中的XSS代碼,多出如今數據初始化階段

預防

  1. 過濾輸入的數據,包括各類危險符號
  2. 對輸出的頁面的數據進行相應的編碼轉換

CSRF

攻擊者編寫非法連接,放入網站A,目標用戶在訪問網站A的時候,已經登陸自動帶上cookie,這個時候去訪問攻擊者寫的非法連接,就可以直接使用目標用戶的cookie來作一些事情

攻擊前提

  • 目標用戶已經登陸了網站,可以執行網站的功能
  • 目標用戶訪問攻擊者構造的url

預防

  1. 驗證請求的referer值
  2. 登陸後隨機產生一個token,請求的時候帶上token

後記

還有不少其餘的攻擊方式,大多數都是屬於後端服務保護範疇,對於前端的保護,鑑於理解這麼些攻擊方式,我以爲差很少了。畢竟對於前端來講,這些攻擊不少都是可以直接繞過前端代碼進行的

相關文章
相關標籤/搜索