在當今對代碼質量和規范性要求日益嚴格的環境中,開發者亟需強大的代碼檢查工具來應對挑戰。DevEco Studio Code Linter正是這樣一款工具,它通過提升代碼質量、統一代碼風格,并有效檢測安全漏洞和潛在bug,為開發者提供了顯著的優勢,成為現代軟件開發中不可或缺的重要利器。
DevEco Studio Code Linter支持對ArkTS/TS代碼進行最佳實踐/編程規范方面的檢查,不符合編碼規范的語句,將在代碼中提示并警告,點擊錯誤信息,會展示具體錯誤位置及詳細的規則描述。開發者可根據掃描結果中告警提示手工修復代碼缺陷,或者執行一鍵式自動修復,在代碼開發階段,確保代碼質量。
本文將重點介紹Code Linter的安全規則及使用。相關規則描述如下:
序號 | 安全規則 | 規則描述 |
1 | @security/no-cycle | 禁止使用循環依賴 |
2 | @security/no-unsafe-aes | 禁止在AES加密算法中使用不安全的ECB加密模式,推薦使用Petal Aegis SDK中的安全AES接口,詳情參見對稱加解密(https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-Guides/aegis-encryption-and-decryption-symmetry-0000001861247310#section153801471317) |
3 | @security/no-unsafe-dh | 禁止使用不安全的DH密鑰協商算法,如DH模數長度小于2048bit |
4 | @security/no-unsafe-dh-key | 禁止使用不安全的DH密鑰,如DH模數長度小于2048bit |
5 | @security/no-unsafe-dsa | 禁止使用不安全的DSA簽名算法,如DSA模數長度小于2048bit、摘要中使用不安全的SHA1哈希算法 |
6 | @security/no-unsafe-dsa-key | 禁止使用不安全的DSA密鑰,如DSA模數長度小于2048bit |
7 | @security/no-unsafe-ecdsa | 禁止在ECDSA簽名算法中使用不安全的SHA1摘要算法,推薦使用Petal Aegis SDK中的安全ECDSA接口,詳情參見:ECDSA簽名驗簽(https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-Guides/aegis-signature-verification-0000001866035345#section12984925133517) |
8 | @security/no-unsafe-hash | 禁止使用不安全的哈希算法,例如MD5、SHA1 |
9 | @security/no-unsafe-mac | 禁止在MAC消息認證算法中使用不安全的哈希算法,例如SHA1 |
10 | @security/no-unsafe-rsa-encrypt | 禁止使用不安全的RSA非對稱加密算法,如RSA模數長度小于2048bit、填充模式為PKCS1、摘要或掩碼摘要中使用不安全的MD5或SHA1哈希算法,推薦使用Petal Aegis SDK中的安全RSA加密和解密接口,詳情參見:RSA加解密(https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-Guides/aegis-encryption-and-decryption-asymmetric-0000001907932453#section1925912512) |
11 | @security/no-unsafe-rsa-key | 禁止使用不安全的RSA密鑰,如RSA模數長度小于2048bit。推薦使用Petal Aegis SDK中的安全RSA簽名接口,詳情參見:RSA密鑰(https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-References/ohaeggeneratersakeypairbase64-0000001864601898) |
12 | @security/no-unsafe-rsa-sign | 禁止不安全的RSA簽名算法,如RSA模數長度小于2048bit、摘要或掩碼摘要中使用不安全的MD5或SHA1哈希算法。推薦使用PetalAegis SDK中的安全RSA簽名接口,詳情參見:RSA加解密(https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-Guides/aegis-signature-verification-0000001866035345#section1039727112016) |
1使用指南
1.1 支持配置代碼安全檢查規則:
在工程根目錄下創建code-linter.json5配置文件,可對代碼檢查的范圍及對應生效的檢查規則進行配置,其中files和ignore配置項共同確定了代碼檢查范圍,ruleSet和rules配置項共同確定了生效的規則范圍。
具體配置項功能如下:
1、files:配置待檢查的文件名單,如未指定目錄,將檢查當前被選中的文件或文件夾中的代碼文件,例如:["**/*.ets","**/*.js","**/*.ts"]。
2、ignore:配置無需檢查的文件目錄,其指定的目錄或文件需使用相對路徑格式,相對于code-linter.json5所在工程根目錄,例如:build/**/*。
3、ruleSet:配置檢查使用的規則集,規則集支持一次導入多條規則。規則詳情參考codelinter代碼檢查規則(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-codelinter-rule-V5)。
4、rules:可基于ruleSet配置的規則集,新增額外規則項,或修改ruleSet中規則默認配置,例如將規則集中某條規則告警級別由warn改為error。
5、overrides:針對工程根目錄下部分特定目錄或文件,可配置定制化檢查的規則。
{ "files": [ "**/*.ts", "**/*.ets", "**/*.js" ], "ignore": [ "**/ohosTest/**/*", "**/node_modules/**/*", "**/hvigorfile.ts", "**/oh_modules/**/*", "**/build/**/*", "**/.preview/**/*" ], "rules": { "@security/no-cycle": "error", "@security/no-unsafe-aes": "error", "@security/no-unsafe-hash": "error", "@security/no-unsafe-mac": "error", "@security/no-unsafe-dh": "error", "@security/no-unsafe-dsa": "error", "@security/no-unsafe-ecdsa": "error", "@security/no-unsafe-rsa-encrypt": "error", "@security/no-unsafe-rsa-sign": "error", "@security/no-unsafe-rsa-key": "error", "@security/no-unsafe-dsa-key": "error", "@security/no-unsafe-dh-key": "error", } }
1.2 檢查方法:
打開代碼編輯器窗口右鍵點擊Code Linter,或在工程管理窗口中選中單個或多個工程文件/目錄,右鍵點擊Code Linter> Full Linter執行代碼全量檢查。(如下圖所示)
1.3 查看/處理代碼檢查結果
掃描完成后,在底部工具面板查看檢查結果。勾選Defects中不同告警等級,可分別查看對應信息。雙擊某條告警結果,可以跳轉到對應代碼缺陷位置;選中告警結果時,可以在右側Defect Description窗口查看告警對應的規則詳細說明,其中包含正向和反向示例,用戶可根據建議修改代碼;搜索規則時,可設定是否全詞匹配和大小寫敏感。
單擊圖標,查看可修復的代碼規則,點擊代碼修復圖標,可一鍵批量修復告警,并刷新檢查結果。
1.4 屏蔽告警信息:
在某些特殊場景下,若掃描結果中出現誤報,點擊單條告警結果后的Ignore圖標,可忽略對告警所在行的Code Linter檢查,并支持勾選文件名稱或多條待屏蔽的告警批量執行操作;
在文件頂部添加注釋/*eslint-disable */可以屏蔽整個文件執行code linter檢查,在eslint-disable 后加入一個或多個以逗號分隔的規則Id,可以屏蔽具體檢查規則。
在需要忽略檢查的代碼塊前后分別添加/*eslint-disable */和/* eslint-enable */添加注釋信息,再執行Code Linter,將不再顯示該代碼塊掃描結果;在待屏蔽的代碼行前一行添加/*eslint-disable-next-line */,也可屏蔽對該代碼行的Code Linter檢查。
如需恢復忽略的報錯信息,可以直接刪除該行上方的注釋,重新執行CodeLinter檢查。
1.5 導出檢查結果
點擊工具面板左側導出按鈕,即可導出檢查結果到excel文件,包含告警所在行、告警明細、告警級別等信息。
通過上述代碼安全規則的介紹,我們可以看到Code Linter的強大功能。它不僅能有效檢測代碼中的安全漏洞和潛在bug,還能仔細檢查語法和風格問題。這意味著開發者在編碼階段就能及時發現并修復這些問題,從而大大降低未來出錯的風險,讓整個開發過程更加順暢和高效。無論是新手還是資深開發者,Code Linter都是您得力的伙伴。
-
代碼
+關注
關注
30文章
4779瀏覽量
68524 -
DevEco Studio
+關注
關注
0文章
21瀏覽量
1072
原文標題:探索DevEco Studio Code Linter:提升代碼安全的全新利器
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論