web應用安全check list

首先對本文所指的web應用作一下定義,包含以下兩種類型的應用android

  • B/S應用,即browser經過頁面超連接/提交表單/ajax和server交互ios

  • C/S應用,即ios/android手機應用或者PC應用經過webservice和server交互web


我把check list分爲client端和sever端兩類,之後會陸續更新check list。
ajax

Client:算法

  • 規定時長裏用戶沒有任何操做(對android app, ios app來講還包括應用被切換到後臺後),客戶端須要自動logout並跳轉到login界面。緣由是用戶可能停留在一個保留敏感信息的界面,致使以後的陌生人能夠在未經受權的狀況下看到這些敏感信息(因爲主人長時間離開或者丟失手機)。安全

  • 不在client記錄任何用戶敏感信息,例如密碼,信用卡號。
    服務器

Server:cookie

  • 檢查application server是否爲已經打完全部已知的安全補丁。session

  • 檢查application server和code是否用了足夠強的加密算法/協議(例如SSL/TLS協議版本,MD5/SHA1算法長度,RSA/DES加密算法長度)。app

  • 若是支持https協議,設置cookie爲secure

  • 檢查應用和服務器的log,確保mask了任何包含用戶敏感信息(密碼,信用卡號,有效期等)的內容。

  • 遵循最小權限原則,配置防火牆,只對internet開放必須的端口和url。

  • 對於非法權限訪問和不存在的頁面的訪問,都返回404。這樣作能夠防止黑客經過掃描經常使用url得知哪些url存在,哪些不存在,進而集中精力攻擊那些存在的url。

  • server返回結果中避免暴露server信息(例如操做系統名稱,服務器版本等),這些信息有助於黑客進行攻擊。

  • 設置最長session時間(例如3小時),這樣能夠防止黑客在得到cookie中的sessionid後不停地訪問服務器以保持session永遠不過時。

  • 設置cookie爲httponly

  • client的任何請求均視爲不可信任,確保全部client端已經有的驗證都有對應的server端驗證(檢驗方法:用hack代碼模擬client, 跳過client驗證,發送未經client驗證的請求到server)

  • 反釣魚

相關文章
相關標籤/搜索