Web安全原則

2021-10-07 05:19:33 字數 3388 閱讀 9115

1.認證模組必須採用防暴力破解機制,例如:驗證碼或者多次連續嘗試登入失敗後鎖定帳號或ip。

說明:如採用多次連續嘗試登入失敗後鎖定帳號或ip的方式,需支援連續登入失敗鎖定策略的「允許連續失敗的次數」可配置,支援在鎖定時間超時後自動解鎖。

2.對於每乙個需要授權訪問的頁面或servlet的請求都必須核實使用者的會話標識是否合法、使用者是否被授權執行這個操作,以防止url越權。

說明:防止使用者通過直接輸入url,進行url越權,請求並執行一些頁面或servlet;建議通過過濾器實現。

3.登入過程中,往伺服器端傳遞使用者名稱和口令時,必須採用https安全協議(也就是帶伺服器端證書的ssl)。只提供本機接入、登入,做裝置管理使用的場景暫時不要求。

說明:如果在客戶端和伺服器間傳遞如帳號、口令等敏感資料,必須使用帶伺服器端證書的ssl。由於ssl對服務端的cpu資源消耗很大,實施時必須考慮伺服器的承受能力。

4.對使用者的最終認證處理過程必須放到伺服器進行。

使用者產生的資料必須在服務端進行校驗;資料在輸出到客戶端前必須先進行html編碼,以防止執行惡意**、跨站指令碼攻擊。對於不可信的資料,輸出到客戶端前必須先進行 html 編碼。

5.使用主流web安全掃瞄工具掃瞄web伺服器和web應用,不存在「高」級別的漏洞。

非嵌入式產品的web應用,應使用預編譯語句preparedstatement代替直接的語句執行statement,以防止sql注入。

1.系統對敏感資料的儲存、傳輸和處理需保證資料安全,並遵從適用國家和地區的法律和法規要求。

敏感資料定義:包括但不限於口令、銀行賬號、個人資料(單獨使用該資料或者結合其他資訊可以識別某個活著的自然人的資料,包括:終端使用者姓名、帳號、主叫和被叫號碼、通訊記錄、話單、通訊時間、定位資料等)。

:對於業界第三方主流軟硬體(如作業系統、資料庫、web容器)自身提供的口令功能,不受本條限制。

2.在非信任網路之間進行敏感資料(包括口令,銀行帳號,批量個人資料等)的傳輸須採用安全傳輸通道或者加密後傳輸,有標準協議規定除外。

3.禁止使用私有加密演算法。

說明:

對稱加密演算法建議使用:aes192及以上強度;

金鑰交換演算法建議使用:dh1024;

數字簽名演算法建議使用:dsa1024、ecdsa192;

非對稱演算法建議使用:rsa2048、ecc192;

hash(雜湊)演算法建議使用:sha256及以上強度;

hmac(基於雜湊的訊息驗證碼)演算法建議使用:hmac-sha256;用於敏感資料傳輸加密的金鑰,不能硬編碼在**中。

4.在敏感資料的安全傳輸上,優先使用業界的標準安全協議(如ssh v2/tls1.0/ssl3.0/ipsec/sftp/https等),並確保金鑰可配置;如果是由產品自身實現安全傳輸過程,則優先使用diffie-hellman金鑰交換演算法,如果使用預置共享金鑰等其他方法,也必須保證該金鑰可配置和可替換。禁止在日誌、話單等檔案中記錄口令、銀行賬號、通訊內容等敏感資料;盡量避免在日誌、話單中記錄個人資料,如果必須記錄個人資料,則所有資料必須進行結構化儲存或適合於進行匿名化提取;

1)盡量避免在日誌中記錄個人資料,如果必須記錄,在個人資料之前或之後加統一的標記,以區別於其他非個人資料。

2)盡量避免在話單中記錄個人資料,如果必須記錄,則話單必須進行結構化儲存,欄位間必須由統一的分隔符分開,每行的字段按列嚴格對應。

有個人資料匯出功能的產品發布時必須同時提供對個人資料進行過濾或匿名化處理和功能或工具;

嚴格限制匯出功能的許可權,對匯出功能的使用必須有日誌記錄。

涉及個人資料的採集/處理的功能須提供安全保護機制(如認證、許可權控制、日誌記錄等),並通過產品資料向客戶公開。

在正常業務流程和標準協議之外,禁止出於故障定位目的進行使用者精確位置資訊定位。如需處理使用者精確位置資料,應有華為的明確需求,並在方案設計時,給予使用者隨時撤回同意的機會。
設定口令時,預設檢測口令複雜度,口令至少滿足如下要求:

口令長度至少6個字元(特權使用者至少8個字元);

口令必須包含如下至少兩種字元的組合:

-至少乙個小寫字母;

-至少乙個大寫字母;

-至少乙個數字;

-至少乙個特殊字元:`~!@#$%^&*()-_=+|[{}];:』」,<.>/? 和空格

口令不能和帳號或者帳號的逆序相同;

若設定的口令不符合上述規則,必須進行警告。

系統必須提供鎖定使用者的機制。可選擇如下兩種方式之一:
方式一:當重複輸入錯誤口令次數(預設3次,次數系統可以設定)超過系統限制時,系統要鎖定該使用者。

方式二:系統還可以設定下次允許輸入口令的間隔時間加倍,採用這種方式時,使用者可以不設定自動鎖定。

可設定自動解鎖時間(只適用於由於口令嘗試被鎖定的使用者)

1)對於口令嘗試n次失敗被鎖定的使用者,系統要能夠設定自動解鎖時間,建議預設解鎖時間為5分鐘。

2)使用者被鎖時間達到預定義時間,可自動解鎖該使用者,或者也可通過安全管理員手工解鎖該使用者。

3)在鎖定時間內,僅能允許應用安全管理員角色所屬帳號手動解鎖該使用者。

操作介面中的口令不能明文顯示,鍵入口令時不能明文顯示出來(操作介面中的輸入口令可不顯示或用*代替),包括在終端上列印或儲存在日誌中時也不能明文顯示口令,即使是記憶體中的明文口令(如登入期間),也應在使用後立即覆蓋。

口令輸入框不支援拷貝功能。

對於系統內建帳號的預設口令,口令應符合複雜度的要求,並在客戶資料中提醒使用者修改。

使用者可修改自己的口令,需滿足如下要求:

使用者修改自己口令時必須驗證舊口令;

不允許修改除自身帳號以外的帳號的口令(管理員除外)

口令不能在網路中明文傳輸,口令等認證憑證在傳輸過程中必須加密,使用高安全等級的加密演算法

口令在本地儲存時必須加密,需滿足如下要求:

口令不能夠明文寫入日誌檔案、配置檔案以及cookie中;

口令檔案必須設定訪問控制,普通使用者不能讀取或拷貝加密的內容。

產品配套資料提供清晰的帳號、口令清單

Web安全 Web通訊

協議 url http 統一資源定位符 uniform resource locator 支援多種協議 http ftp 定位伺服器的資源 schema host port path query string anchor schema 底層協議 如 http https ftp host 伺服器的...

安全測試,web安全

web分為好幾層,一圖勝千言 完全沒有基礎我該從哪下手?完全沒有基礎學習 web 安全是件比較難的事情,所以我給出的最小的方案和最少的建議。工具 先用 awvs 掃幾個測試 大體了解一下 把掃到的漏洞復現,了解怎麼利用,主要了解 xsssql 注入 遠端 執行 開發 書籍 細說 php 實踐 使用 ...

Web安全 密碼安全

就是為了證明 你就是你的問題 計算機為了識別人的時候,需要密碼。資料庫被偷 伺服器被入侵 通訊被竊聽 http協議被竊聽 內部人員洩密 通過撞庫的方式 嚴禁明文儲存 防洩漏 單向變換 變換複雜度分析 密碼複雜度的要求 明文 密文 是一一對應的。雪崩效應 只要明文一點點不一樣,密文是完全不一樣的。密文...