1. 程式人生 > >web安全問題總結

web安全問題總結

frame http協議 跨站請求偽造 eva com 重要 次數 安全問題 sql命令

主要問題

  1. SQL註入:即通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令,從而獲取不該獲取的數據
  2. 跨站腳本攻擊(也稱為XSS):指利用網站漏洞從用戶那裏惡意盜取信息。用戶在瀏覽網站、使用即時通訊軟件、甚至在閱讀電子郵件時,通常會點擊其中的鏈接。鏈接裏可以獲取網站的cookie並提交給攻擊者網站,攻擊者利用cookie就能夠盜取用戶信息。例如: 用戶發表了評論alert(1),並不加處理的存儲到服務器數據庫,這樣,當其他用戶訪問對應頁面時,會自動在頁面彈出彈窗1;
  3. 跨站請求偽造(CSRF/XSRF): 用戶在登錄工商銀行網頁的同時,同時打開了另一個不安全頁面,裏面有一行html代碼<img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">
    【假的】去執行工商銀行轉賬操作,用戶在打開不安全頁面的同時會自動執行轉賬操作,而用戶本身並不知情。CSRF能成功是因為同一個瀏覽器會共享Cookies。

措施

  1. 使用https協議而不是http協議;
  2. 不要在客戶端代碼、cookie,localStorage,sessionStorage中存放敏感數據,cookie設置成httponly,不允許通過JavaScript訪問cookie
  3. 在中間件或者前置nginx設置HTTP安全頭部,比如Strict-Transport-Security,X-Frame-Options,X-XSS-Protection,X-Content-Type-Options
    ,Content-Security-Policy等;
  4. SQL註入: 盡可能使用sequelize方法去查詢數據庫,少使用sequelize.query,如果必須寫,對於sql語句參數化查詢或預處理,對用戶的輸入內容進行轉義;
  5. 不用eval;
  6. 使用非root用戶啟動應用程序;
  7. 限制同一個用戶在規定時間內訪問網站接口的次數,比如一秒一次;
  8. 限制密碼輸入錯誤次數;
  9. 對於一些重要敏感操作時服務端要檢查Referer字段,同時在敏感操作多進行幾次數據交互完成,而不是一次請求完成,也可以有效避免CSRF

web安全問題總結