0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DevEco Studio Code Linter的使用指南

HarmonyOS開發(fā)者 ? 來(lái)源:HarmonyOS開發(fā)者技術(shù) ? 2024-11-05 09:52 ? 次閱讀

在當(dāng)今對(duì)代碼質(zhì)量和規(guī)范性要求日益嚴(yán)格的環(huán)境中,開發(fā)者亟需強(qiáng)大的代碼檢查工具來(lái)應(yīng)對(duì)挑戰(zhàn)。DevEco Studio Code Linter正是這樣一款工具,它通過提升代碼質(zhì)量、統(tǒng)一代碼風(fēng)格,并有效檢測(cè)安全漏洞和潛在bug,為開發(fā)者提供了顯著的優(yōu)勢(shì),成為現(xiàn)代軟件開發(fā)中不可或缺的重要利器。

DevEco Studio Code Linter支持對(duì)ArkTS/TS代碼進(jìn)行最佳實(shí)踐/編程規(guī)范方面的檢查,不符合編碼規(guī)范的語(yǔ)句,將在代碼中提示并警告,點(diǎn)擊錯(cuò)誤信息,會(huì)展示具體錯(cuò)誤位置及詳細(xì)的規(guī)則描述。開發(fā)者可根據(jù)掃描結(jié)果中告警提示手工修復(fù)代碼缺陷,或者執(zhí)行一鍵式自動(dòng)修復(fù),在代碼開發(fā)階段,確保代碼質(zhì)量。

本文將重點(diǎn)介紹Code Linter的安全規(guī)則及使用。相關(guān)規(guī)則描述如下:

序號(hào) 安全規(guī)則 規(guī)則描述
1 @security/no-cycle 禁止使用循環(huán)依賴
2 @security/no-unsafe-aes 禁止在AES加密算法中使用不安全的ECB加密模式,推薦使用Petal Aegis SDK中的安全AES接口,詳情參見對(duì)稱加解密(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ù)長(zhǎng)度小于2048bit
4 @security/no-unsafe-dh-key 禁止使用不安全的DH密鑰,如DH模數(shù)長(zhǎng)度小于2048bit
5 @security/no-unsafe-dsa 禁止使用不安全的DSA簽名算法,如DSA模數(shù)長(zhǎng)度小于2048bit、摘要中使用不安全的SHA1哈希算法
6 @security/no-unsafe-dsa-key 禁止使用不安全的DSA密鑰,如DSA模數(shù)長(zhǎng)度小于2048bit
7 @security/no-unsafe-ecdsa 禁止在ECDSA簽名算法中使用不安全的SHA1摘要算法,推薦使用Petal Aegis SDK中的安全ECDSA接口,詳情參見:ECDSA簽名驗(yàn)簽(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消息認(rèn)證算法中使用不安全的哈希算法,例如SHA1
10 @security/no-unsafe-rsa-encrypt 禁止使用不安全的RSA非對(duì)稱加密算法,如RSA模數(shù)長(zhǎng)度小于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ù)長(zhǎng)度小于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ù)長(zhǎng)度小于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配置文件,可對(duì)代碼檢查的范圍及對(duì)應(yīng)生效的檢查規(guī)則進(jìn)行配置,其中files和ignore配置項(xiàng)共同確定了代碼檢查范圍,ruleSet和rules配置項(xiàng)共同確定了生效的規(guī)則范圍。

具體配置項(xiàng)功能如下:

1、files:配置待檢查的文件名單,如未指定目錄,將檢查當(dāng)前被選中的文件或文件夾中的代碼文件,例如:["**/*.ets","**/*.js","**/*.ts"]。

2、ignore:配置無(wú)需檢查的文件目錄,其指定的目錄或文件需使用相對(duì)路徑格式,相對(duì)于code-linter.json5所在工程根目錄,例如:build/**/*。

3、ruleSet:配置檢查使用的規(guī)則集,規(guī)則集支持一次導(dǎo)入多條規(guī)則。規(guī)則詳情參考codelinter代碼檢查規(guī)則(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-codelinter-rule-V5)。

4、rules:可基于ruleSet配置的規(guī)則集,新增額外規(guī)則項(xiàng),或修改ruleSet中規(guī)則默認(rèn)配置,例如將規(guī)則集中某條規(guī)則告警級(jí)別由warn改為error。

5、overrides:針對(duì)工程根目錄下部分特定目錄或文件,可配置定制化檢查的規(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 檢查方法:

打開代碼編輯器窗口右鍵點(diǎn)擊Code Linter,或在工程管理窗口中選中單個(gè)或多個(gè)工程文件/目錄,右鍵點(diǎn)擊Code Linter> Full Linter執(zhí)行代碼全量檢查。(如下圖所示)

2619d29c-98c7-11ef-a511-92fbcf53809c.png

1.3 查看/處理代碼檢查結(jié)果

掃描完成后,在底部工具面板查看檢查結(jié)果。勾選Defects中不同告警等級(jí),可分別查看對(duì)應(yīng)信息。雙擊某條告警結(jié)果,可以跳轉(zhuǎn)到對(duì)應(yīng)代碼缺陷位置;選中告警結(jié)果時(shí),可以在右側(cè)Defect Description窗口查看告警對(duì)應(yīng)的規(guī)則詳細(xì)說明,其中包含正向和反向示例,用戶可根據(jù)建議修改代碼;搜索規(guī)則時(shí),可設(shè)定是否全詞匹配和大小寫敏感。

單擊263ea310-98c7-11ef-a511-92fbcf53809c.png圖標(biāo),查看可修復(fù)的代碼規(guī)則,點(diǎn)擊26478606-98c7-11ef-a511-92fbcf53809c.png代碼修復(fù)圖標(biāo),可一鍵批量修復(fù)告警,并刷新檢查結(jié)果。

265940d0-98c7-11ef-a511-92fbcf53809c.png

1.4 屏蔽告警信息:

在某些特殊場(chǎng)景下,若掃描結(jié)果中出現(xiàn)誤報(bào),點(diǎn)擊單條告警結(jié)果后的Ignore圖標(biāo),可忽略對(duì)告警所在行的Code Linter檢查,并支持勾選文件名稱或多條待屏蔽的告警批量執(zhí)行操作;

在文件頂部添加注釋/*eslint-disable */可以屏蔽整個(gè)文件執(zhí)行code linter檢查,在eslint-disable 后加入一個(gè)或多個(gè)以逗號(hào)分隔的規(guī)則Id,可以屏蔽具體檢查規(guī)則。

在需要忽略檢查的代碼塊前后分別添加/*eslint-disable */和/* eslint-enable */添加注釋信息,再執(zhí)行Code Linter,將不再顯示該代碼塊掃描結(jié)果;在待屏蔽的代碼行前一行添加/*eslint-disable-next-line */,也可屏蔽對(duì)該代碼行的Code Linter檢查。

如需恢復(fù)忽略的報(bào)錯(cuò)信息,可以直接刪除該行上方的注釋,重新執(zhí)行CodeLinter檢查。

266d9aa8-98c7-11ef-a511-92fbcf53809c.png

1.5 導(dǎo)出檢查結(jié)果

點(diǎn)擊工具面板左側(cè)導(dǎo)出按鈕,即可導(dǎo)出檢查結(jié)果到excel文件,包含告警所在行、告警明細(xì)、告警級(jí)別等信息。

2672a642-98c7-11ef-a511-92fbcf53809c.png

通過上述代碼安全規(guī)則的介紹,我們可以看到Code Linter的強(qiáng)大功能。它不僅能有效檢測(cè)代碼中的安全漏洞和潛在bug,還能仔細(xì)檢查語(yǔ)法和風(fēng)格問題。這意味著開發(fā)者在編碼階段就能及時(shí)發(fā)現(xiàn)并修復(fù)這些問題,從而大大降低未來(lái)出錯(cuò)的風(fēng)險(xiǎn),讓整個(gè)開發(fā)過程更加順暢和高效。無(wú)論是新手還是資深開發(fā)者,Code Linter都是您得力的伙伴。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4717

    瀏覽量

    68204
  • DevEco Studio
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    1041

原文標(biāo)題:探索DevEco Studio Code Linter:提升代碼安全的全新利器

文章出處:【微信號(hào):HarmonyOS_Dev,微信公眾號(hào):HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(工程管理)

    DevEco Studio的基本使用,請(qǐng)參考[DevEco Studio使用指南]。本章主要介紹如何使用
    的頭像 發(fā)表于 05-16 16:07 ?1099次閱讀
    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(工程管理)

    code warrior使用指南

    codewarrior 使用指南
    發(fā)表于 04-21 21:32

    HUAWEI DevEco Device Tool 使用指南【持續(xù)更新中...】

    ,支持代碼編輯、燒錄和調(diào)試等功能,支持C/C++語(yǔ)言,以插件的形式部署在Visual Studio Code上。下面將從以下幾個(gè)方面介紹DevEco Device Tool 的使用:1、工具簡(jiǎn)介2、環(huán)境準(zhǔn)備3、配置和導(dǎo)入工程4、
    發(fā)表于 09-17 13:48

    DevEco Studio 2.0 Beta3 Windows/Mac安裝包,以及使用指南

    使用指南2、Huawei DevEco Studio 使用指南目前OpenHarmony最新資料會(huì)同步在鴻蒙公眾號(hào),如果不想錯(cuò)過,也可關(guān)注一下:`
    發(fā)表于 12-16 16:07

    @開發(fā)者,這份DevEco Studio搭建指南請(qǐng)收下!

    使用指南》的“配置開發(fā)環(huán)境”章節(jié)。下載完成后,點(diǎn)擊Finish。好了,HarmonyOS的SDK和Previewer就下載完成了,點(diǎn)擊OK?!?b class='flag-5'>DevEco Studio使用指南》:ht
    發(fā)表于 07-27 11:59

    【資料】DevEco Studio 1.0 使用指南

    DevEco Studio 1.0 使用指南,內(nèi)容目錄如下:回復(fù)帖子查看資料下載鏈接:[hide][/hide]
    發(fā)表于 08-12 11:42

    DevEco Studio 3.1 Beta新特性知多少

    HUAWEI DevEco Studio是開發(fā)HarmonyOS應(yīng)用及服務(wù)的一站式集成開發(fā)環(huán)境(IDE)。本次,DevEco Studio 3.1 Beta新增支持當(dāng)前在市面上新的操作
    發(fā)表于 04-23 11:06

    Code Composer Studio入門

    Code Composer Studio入門一.實(shí)驗(yàn)?zāi)康?.掌握Code Composer Studio 2.21的安裝和配置步驟過程。2.了解DSP開發(fā)系統(tǒng)和計(jì)算機(jī)與目標(biāo)系統(tǒng)的連接方
    發(fā)表于 03-17 00:11 ?1.8w次閱讀
    <b class='flag-5'>Code</b> Composer <b class='flag-5'>Studio</b>入門

    Code Composer Studio入門指南(修訂版)

    要開始使用Code Composer Studio,你必須通過第一這本書的兩章。
    發(fā)表于 04-12 15:43 ?36次下載
    <b class='flag-5'>Code</b> Composer <b class='flag-5'>Studio</b>入門<b class='flag-5'>指南</b>(修訂版)

    HUAWEI DevEco Device Tool 使用指南

    的組件按需定制,支持代碼編輯、燒錄和 調(diào)試等功能,支持 C/C++語(yǔ)言,以插件的形式部署在 Visual Studio Code 上。
    發(fā)表于 10-14 14:35 ?6次下載
    HUAWEI <b class='flag-5'>DevEco</b> Device Tool <b class='flag-5'>使用指南</b>

    Huawei DevEco Studio使用指南

    Huawei DevEco Studio使用指南免費(fèi)下載。
    發(fā)表于 05-25 14:55 ?25次下載

    DevEco Studio 2.1 Release版HarmonyOS SDK升級(jí)

    DevEco Studio 版本說明記錄了 DevEco Studio 歷史版本的更新記錄: ①如果您已經(jīng)安裝 DevEco
    的頭像 發(fā)表于 06-26 17:49 ?2625次閱讀

    DevEco Studio 3.0 測(cè)試版來(lái)啦

    DevEco Studio 3.0是HarmonyOS 3.0和OpenHarmony 3.1應(yīng)用及服務(wù)開發(fā)配套的集成開發(fā)環(huán)境(IDE),支持ArkUI聲明式編程規(guī)范、低代碼開發(fā)、雙向預(yù)覽、全新構(gòu)建
    的頭像 發(fā)表于 04-07 11:48 ?2484次閱讀
    <b class='flag-5'>DevEco</b> <b class='flag-5'>Studio</b> 3.0 測(cè)試版來(lái)啦

    DevEco Studio 3.1 Beta新特性知多少

    HUAWEI DevEco Studio是開發(fā)HarmonyOS應(yīng)用及服務(wù)的一站式集成開發(fā)環(huán)境(IDE)。本次,DevEco Studio 3.1 Beta新增支持當(dāng)前在市面上新的操作
    的頭像 發(fā)表于 04-21 11:15 ?611次閱讀
    <b class='flag-5'>DevEco</b> <b class='flag-5'>Studio</b> 3.1 Beta新特性知多少

    DevEco Studio 3.1 Beta新特性知多少?

    HUAWEI DevEco Studio是開發(fā)HarmonyOS應(yīng)用及服務(wù)的一站式集成開發(fā)環(huán)境(IDE)。本次,DevEco Studio 3.1 Beta新增支持當(dāng)前在市面上新的操作
    的頭像 發(fā)表于 04-21 16:50 ?698次閱讀
    <b class='flag-5'>DevEco</b> <b class='flag-5'>Studio</b> 3.1 Beta新特性知多少?