DevEco Studio Code Linter的使用指南

描述

在当今对代码质量和规范性要求日益严格的环境中,开发者亟需强大的代码检查工具来应对挑战。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都是您得力的伙伴。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分