前端面試整理筆記一

愛心紅雨發表於2018-03-26

一、常見的web安全及防護原理

1.sql注入原理

就是通過把sql命令插入到web表單遞交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。

防護,總的來說有以下幾點:

1、永遠不要信任使用者的輸入,要對使用者的輸入進行校驗,可以通過正規表示式,或限制長度,對單引號雙“–”進行轉換等。

2、永遠不要使用動態拼裝sql,可以使用引數化的sql或者直接使用儲存過程進行資料查詢存取。

3、永遠不要使用管理員許可權進行資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。

4、不要把機密資訊明文存放,請加密或者hash掉密碼和敏感的資訊。

 

2. XSS原理及防範

    XSS(cross-site scripting)攻擊指的是攻擊者往Web頁面裡插入惡意html標籤或者javascript程式碼。比如:攻擊者在qq中傳送一個看似安全的連結,騙取使用者點選之後,竊取cookie中的使用者私密資訊;或者攻擊者在論壇中加一個惡意表單,當使用者提交表單的時候,卻把資訊傳送到攻擊者的伺服器中,而不是使用者原本以為信任的站點。

 3.XSS防範方法

首先程式碼裡對使用者輸入的地方和變數都需要仔細檢查長度和對“<”,”>” ,”;”,” ` “等字元做過濾;其次任何內容寫到頁面之前都必須加以encode,避免不小心把html tag弄出來。至少可以堵住超過一半的XSS攻擊。

首先,避免直接在cookie中洩漏使用者隱私,例如email、密碼等等。

其次,通過使用cookie和系統ip繫結來降低cookie洩漏後的危險。這樣攻擊者得到的cookie沒有實際價值,不可能拿來重放。

如果網站不需要在瀏覽器端對cookie進行操作,可以在set-cookie末尾加上HttpOnly來防止JavaScript程式碼直接獲取cookie 。

儘量採用post而非get提交表單

4.XSS與CSRF有什麼區別嗎?

XSS是獲取資訊,不需要提前知道其他使用者頁面的程式碼和資料包。CSRF是代替使用者完成指定的動作,需要知道其他使用者頁面的程式碼和資料包。

要完成一次CSRF攻擊,受害者必須依次完成兩個步驟:

登入受信任網站A,並在本地生成cookie。

在不登出A的情況下,訪問危險網站B。

5.CSRF的防範

伺服器端的CSRF方式方法很多樣,但總的思想都是一致的,就是在客戶端頁面增加偽隨機數。

 

相關文章