前端面試整理筆記一

1、常見的web安全及防禦原理javascript

1.sql注入原理html

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

防禦,總的來講有如下幾點:web

一、永遠不要信任用戶的輸入,要對用戶的輸入進行校驗,能夠經過正則表達式,或限制長度,對單引號雙「--」進行轉換等。正則表達式

二、永遠不要使用動態拼裝sql,可使用參數化的sql或者直接使用存儲過程進行數據查詢存取。sql

三、永遠不要使用管理員權限進行數據庫鏈接,爲每一個應用使用單獨的權限有限的數據庫鏈接。數據庫

四、不要把機密信息明文存放,請加密或者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方式方法不少樣,但總的思想都是一致的,就是在客戶端頁面增長僞隨機數。

相關文章
相關標籤/搜索