在当今对代码质量和规范性要求日益严格的环境中,开发者亟需强大的代码检查工具来应对挑战。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文章
4940浏览量
73116 -
DevEco Studio
+关注
关注
0文章
33浏览量
1459
原文标题:探索DevEco Studio Code Linter:提升代码安全的全新利器
文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
最新 HUAWEI DevEco Studio 使用技巧
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 Code Linter的使用指南
评论