在當今對代碼質(zhì)量和規(guī)范性要求日益嚴格的環(huán)境中,開發(fā)者亟需強大的代碼檢查工具來應對挑戰(zhàn)。DevEco Studio Code Linter正是這樣一款工具,它通過提升代碼質(zhì)量、統(tǒng)一代碼風格,并有效檢測安全漏洞和潛在bug,為開發(fā)者提供了顯著的優(yōu)勢,成為現(xiàn)代軟件開發(fā)中不可或缺的重要利器。
DevEco Studio Code Linter支持對ArkTS/TS代碼進行最佳實踐/編程規(guī)范方面的檢查,不符合編碼規(guī)范的語句,將在代碼中提示并警告,點擊錯誤信息,會展示具體錯誤位置及詳細的規(guī)則描述。開發(fā)者可根據(jù)掃描結(jié)果中告警提示手工修復代碼缺陷,或者執(zhí)行一鍵式自動修復,在代碼開發(fā)階段,確保代碼質(zhì)量。
本文將重點介紹Code Linter的安全規(guī)則及使用。相關(guān)規(guī)則描述如下:
序號 | 安全規(guī)則 | 規(guī)則描述 |
1 | @security/no-cycle | 禁止使用循環(huán)依賴 |
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密鑰協(xié)商算法,如DH模數(shù)長度小于2048bit |
4 | @security/no-unsafe-dh-key | 禁止使用不安全的DH密鑰,如DH模數(shù)長度小于2048bit |
5 | @security/no-unsafe-dsa | 禁止使用不安全的DSA簽名算法,如DSA模數(shù)長度小于2048bit、摘要中使用不安全的SHA1哈希算法 |
6 | @security/no-unsafe-dsa-key | 禁止使用不安全的DSA密鑰,如DSA模數(shù)長度小于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模數(shù)長度小于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模數(shù)長度小于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模數(shù)長度小于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 支持配置代碼安全檢查規(guī)則:
在工程根目錄下創(chuàng)建code-linter.json5配置文件,可對代碼檢查的范圍及對應生效的檢查規(guī)則進行配置,其中files和ignore配置項共同確定了代碼檢查范圍,ruleSet和rules配置項共同確定了生效的規(guī)則范圍。
具體配置項功能如下:
1、files:配置待檢查的文件名單,如未指定目錄,將檢查當前被選中的文件或文件夾中的代碼文件,例如:["**/*.ets","**/*.js","**/*.ts"]。
2、ignore:配置無需檢查的文件目錄,其指定的目錄或文件需使用相對路徑格式,相對于code-linter.json5所在工程根目錄,例如:build/**/*。
3、ruleSet:配置檢查使用的規(guī)則集,規(guī)則集支持一次導入多條規(guī)則。規(guī)則詳情參考codelinter代碼檢查規(guī)則(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-codelinter-rule-V5)。
4、rules:可基于ruleSet配置的規(guī)則集,新增額外規(guī)則項,或修改ruleSet中規(guī)則默認配置,例如將規(guī)則集中某條規(guī)則告警級別由warn改為error。
5、overrides:針對工程根目錄下部分特定目錄或文件,可配置定制化檢查的規(guī)則。
{ "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執(zhí)行代碼全量檢查。(如下圖所示)
1.3 查看/處理代碼檢查結(jié)果
掃描完成后,在底部工具面板查看檢查結(jié)果。勾選Defects中不同告警等級,可分別查看對應信息。雙擊某條告警結(jié)果,可以跳轉(zhuǎn)到對應代碼缺陷位置;選中告警結(jié)果時,可以在右側(cè)Defect Description窗口查看告警對應的規(guī)則詳細說明,其中包含正向和反向示例,用戶可根據(jù)建議修改代碼;搜索規(guī)則時,可設定是否全詞匹配和大小寫敏感。
單擊圖標,查看可修復的代碼規(guī)則,點擊
代碼修復圖標,可一鍵批量修復告警,并刷新檢查結(jié)果。
1.4 屏蔽告警信息:
在某些特殊場景下,若掃描結(jié)果中出現(xiàn)誤報,點擊單條告警結(jié)果后的Ignore圖標,可忽略對告警所在行的Code Linter檢查,并支持勾選文件名稱或多條待屏蔽的告警批量執(zhí)行操作;
在文件頂部添加注釋/*eslint-disable */可以屏蔽整個文件執(zhí)行code linter檢查,在eslint-disable 后加入一個或多個以逗號分隔的規(guī)則Id,可以屏蔽具體檢查規(guī)則。
在需要忽略檢查的代碼塊前后分別添加/*eslint-disable */和/* eslint-enable */添加注釋信息,再執(zhí)行Code Linter,將不再顯示該代碼塊掃描結(jié)果;在待屏蔽的代碼行前一行添加/*eslint-disable-next-line */,也可屏蔽對該代碼行的Code Linter檢查。
如需恢復忽略的報錯信息,可以直接刪除該行上方的注釋,重新執(zhí)行CodeLinter檢查。
1.5 導出檢查結(jié)果
點擊工具面板左側(cè)導出按鈕,即可導出檢查結(jié)果到excel文件,包含告警所在行、告警明細、告警級別等信息。
通過上述代碼安全規(guī)則的介紹,我們可以看到Code Linter的強大功能。它不僅能有效檢測代碼中的安全漏洞和潛在bug,還能仔細檢查語法和風格問題。這意味著開發(fā)者在編碼階段就能及時發(fā)現(xiàn)并修復這些問題,從而大大降低未來出錯的風險,讓整個開發(fā)過程更加順暢和高效。無論是新手還是資深開發(fā)者,Code Linter都是您得力的伙伴。
-
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70758 -
DevEco Studio
+關(guān)注
關(guān)注
0文章
31瀏覽量
1324
原文標題:探索DevEco Studio Code Linter:提升代碼安全的全新利器
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
最新 HUAWEI DevEco Studio 使用技巧

HUAWEI DevEco Device Tool 使用指南【持續(xù)更新中...】
DevEco Studio 2.0 Beta3 Windows/Mac安裝包,以及使用指南
@開發(fā)者,這份DevEco Studio搭建指南請收下!
【資料】DevEco Studio 1.0 使用指南
DevEco Studio 3.1 Beta新特性知多少
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新特性知多少?

評論