1. 程式人生 > 其它 >web網路安全及防護(XSS、CSRF、sql注入)

web網路安全及防護(XSS、CSRF、sql注入)

1.什麼是XSS攻擊?

  Xss(cross-site scripting)攻擊指的是攻擊者往Web頁面裡插入惡意 html標籤或者javascript程式碼

  防禦:首先程式碼裡對使用者輸入的地方和變數都需要仔細檢查長度和對”<”,”>”,”;”,”’”等字元做過濾; 其次任何內容寫到頁面之前都必須加以encode,避免不小心把html tag 弄出來。這一個層面做好,至少可以堵住超過一半的XSS 攻擊。 首先,避免直接在cookie 中洩露使用者隱私,例如email、密碼等等。 其次,通過使cookie 和系統ip 繫結來降低cookie 洩露後的危險。這樣攻擊者得到的cookie 沒有實際價值,不可能拿來重放。 儘量採用POST 而非GET 提交表單

2.什麼是CSRF攻擊?

  CSRF(Cross Site Request Forgery),即跨站請求偽造,是一種常見的Web攻擊。CSRF攻擊過程的受害者使用者登入網站A,輸入個人資訊,在本地儲存伺服器生成的cookie。然後在A網站點選由攻擊者構建一條惡意連結跳轉到B網站,然後B網站攜帶著的使用者cookie資訊去訪問B網站。讓A網站造成是使用者自己訪問的假相,從而來進行一些列的操作,常見的就是轉賬。

  防禦:服務端的CSRF方式方法很多樣,但總的思想都是一致的,就是在客戶端頁面增加偽隨機數。通過驗證碼的方法

3.什麼是SQL注入攻擊?

  SQL注入(SQL Injection)

,應用程式在向後臺數據庫傳遞SQL(Structured Query Language,結構化查詢語言)時,攻擊者將SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。

  防禦:永遠不要信任使用者的輸入,要對使用者的輸入進行校驗,可以通過正則表示式,或限制長度,對單引號和雙"-"進行轉換等;永遠不要使用動態拼裝SQL,可以使用引數化的SQL或者直接使用儲存過程進行資料查詢存取;永遠不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線;不要把機密資訊明文存放,請加密或者hash掉密碼和敏感的資訊。