一、常見的web安全及防護原理 1.sql註入原理 就是通過把sql命令插入到web表單遞交或輸入功能變數名稱或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。 防護,總的來說有以下幾點: 1、永遠不要信任用戶的輸入,要對用戶的輸入進行校驗,可以通過正則表達式,或限制長度,對單引號雙“--”進 ...
一、常見的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方式方法很多樣,但總的思想都是一致的,就是在客戶端頁面增加偽隨機數。