SQL注入是SQL語句插入到傳入參數的攻擊,以後再將這些參數傳遞給SQL服務器加以解析並執行。php
代碼中有拼接的SQL或HQL語句前端
思路:預處理和參數化查詢數據庫
使用相關的框架如Struts、Hibernate、Ibatis等後端
使用正規表達式,嚴格檢查輸入的類型、長度和內容瀏覽器
跨站腳本攻擊(XSS)一般是指攻擊者利用網站程序對傳入參數值過濾不足,輸入能夠顯示在頁面上對其餘用戶形成影響的HTML、JS惡意代碼。安全
劫持用戶會話、插入惡意內容、重定向用戶、使用惡意軟件劫持用戶瀏覽器等。服務器
思路:數據在輸出時轉義編碼處理網絡
輸入驗證或過濾(客戶端及服務器端雙向驗證)框架
惡意文件上傳是指攻擊者經過修改上傳功能程序的參數內容,從而達到上傳惡意文件的目的jsp
未對上傳文件類型和格式作合法性校驗,致使攻擊者能夠上傳WebShell惡意文件(.asp,.war,.php,.jsp等)
能夠獲取Web服務器的控制權
思路:上傳文件進行白名單過濾(只容許須要的)
上傳的文件以二進制形式下載,不提供直接訪問
指定上傳文件目錄(此路徑應該在Web服務器限制爲只讀,禁止執行),文件存儲到獨立的文件服務器或數據庫中。
業務邏輯漏洞是因爲業務邏輯設計或流程設計不完整、不合理致使的業務相關的缺陷。
業務邏輯漏洞是因爲業務邏輯設計或流程設計不完整、不合理,客戶端能夠控制輸入數據和流程、檢查點
短信、郵件等若是沒有限制發送次數就會產生拒絕服務攻擊
手機用戶註冊可送優惠券,未限制每一個手機次數
密碼找回的憑證太弱,如只需填入一個四位或者六位的純數字就能夠重置密碼,致使能夠暴力破解;
用戶找回密碼的郵箱或者手機號碼被修改
12306輸入完驗證碼提交訂單時必需要等待4.8秒,可繞過驗證碼
任意郵箱綁定帳號(結合CSRF),驗證碼連接直接登錄。
思路:業務流程須要有必要的控制參數,同時避免控制參數被繞過。
身份認證功能存在設計缺陷或功能薄弱,這就致使攻擊者繞過認證,竊取密碼、密鑰、會話令牌或利用實施漏洞冒充其餘用戶身份
身份認證方式薄弱,如弱密碼、無驗證碼等
邏輯設計缺陷致使能夠重置任意用戶密碼
繞過認證或竊取用戶帳戶,特權帳戶會形成更大的破壞
身份認證時第一道安全防線,身份認證須要防暴力破解、弱口令攻擊。密碼策略和驗證碼時互聯網系統認證標配。
通常系統:8字符以上,且進行弱密碼檢查,並禁止包含用戶名
重要系統:使用多種驗證方式(如動態密碼、短信等)
越權操做指對系統進行超越本身權限的操做;
橫向越權:非法獲取同類用戶權限
縱向越權:非法獲取管理員或特權用戶權限
缺少對用戶權限的判斷,及隱藏URL失效
越權可形成非受權用戶對全部數據、功能進行操做
思路:用戶所有請求進行權限檢查
在使用第三方產品前,須要進行安全評估和版本篩選,從可信的網站(如官網下載),刪除沒必要要的功能,並及時跟蹤安全補丁。
應對接口訪問進行認證(服務器端分配API KEY),如使用Token/openid防範非法訪問;IP白名單限制。
應對接口數據有效性進行檢查,防範重放攻擊和代碼注入攻擊。
應使用數據加密、數字簽名等方式保證數據保密性和完整性
應對接口的訪問權限、訪問頻次進行控制,並記錄接口訪問的日誌。