在當今對代碼質量和規范性要求日益嚴格的環境中,開發者亟需強大的代碼檢查工具來應對挑戰。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文章
4872瀏覽量
69913 -
DevEco Studio
+關注
關注
0文章
28瀏覽量
1218
原文標題:探索DevEco Studio Code Linter:提升代碼安全的全新利器
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
HUAWEI DevEco Device Tool 使用指南【持續更新中...】
DevEco Studio 2.0 Beta3 Windows/Mac安裝包,以及使用指南
@開發者,這份DevEco Studio搭建指南請收下!
DevEco Studio 3.1 Beta新特性知多少
Code Composer Studio入門

HUAWEI DevEco Device Tool 使用指南

DevEco Studio 2.1 Release版HarmonyOS SDK升級
DevEco Studio 3.0 測試版來啦

DevEco Studio 3.1 Beta新特性知多少

DevEco Studio 3.1 Beta新特性知多少?

評論