web安全問題總結
阿新 • • 發佈:2019-05-05
frame http協議 跨站請求偽造 eva com 重要 次數 安全問題 sql命令
主要問題
- SQL註入:即通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令,從而獲取不該獲取的數據
- 跨站腳本攻擊(也稱為XSS):指利用網站漏洞從用戶那裏惡意盜取信息。用戶在瀏覽網站、使用即時通訊軟件、甚至在閱讀電子郵件時,通常會點擊其中的鏈接。鏈接裏可以獲取網站的cookie並提交給攻擊者網站,攻擊者利用cookie就能夠盜取用戶信息。例如: 用戶發表了評論
alert(1)
,並不加處理的存儲到服務器數據庫,這樣,當其他用戶訪問對應頁面時,會自動在頁面彈出彈窗1; - 跨站請求偽造(CSRF/XSRF): 用戶在登錄工商銀行網頁的同時,同時打開了另一個不安全頁面,裏面有一行html代碼
<img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">
措施
- 使用https協議而不是http協議;
- 不要在客戶端代碼、cookie,localStorage,sessionStorage中存放敏感數據,cookie設置成httponly,不允許通過JavaScript訪問cookie
- 在中間件或者前置nginx設置HTTP安全頭部,比如
Strict-Transport-Security
,X-Frame-Options
,X-XSS-Protection
,X-Content-Type-Options
Content-Security-Policy
等; - SQL註入: 盡可能使用sequelize方法去查詢數據庫,少使用sequelize.query,如果必須寫,對於sql語句參數化查詢或預處理,對用戶的輸入內容進行轉義;
- 不用eval;
- 使用非root用戶啟動應用程序;
- 限制同一個用戶在規定時間內訪問網站接口的次數,比如一秒一次;
- 限制密碼輸入錯誤次數;
- 對於一些重要敏感操作時服務端要檢查Referer字段,同時在敏感操作多進行幾次數據交互完成,而不是一次請求完成,也可以有效避免CSRF
web安全問題總結