分享5个和安全相关的 VSCode 插件

news2025/2/26 18:07:46

18b993e6c3ff89bf44b21e1ed4fa0d3f.jpeg

开发高质量的软件应用程序可能是艰巨的,因为许多组成部分必须协同工作才能创建出一个可运行的解决方案。这就是为什么开发人员需要尽可能获得所有帮助和便利,特别是在保护他们的应用程序时。

Visual Studio Code(VSCode)是最受欢迎的开源代码编辑器之一,有很多原因。它兼容三大主流操作系统(Windows、macOS和Linux),而且我们可以轻松地根据自己的喜好进行配置。最重要的是,我们可以安装扩展来增强其功能。

VSCode有丰富的扩展,从简单的用户界面(UI)更改到高级漏洞检测。本文重点介绍后者,突出了五个VSCode扩展,帮助我们编写更安全的代码并保持安全最佳实践。

1、1Password

使用1Password来保护密码的安全

在代码中以明文形式包含密码和机密信息是一个重大的安全风险,因为这样很容易泄露敏感信息。最佳实践是将这些值存储在外部保险库中,并使用变量来访问它们。

然而,在编写代码时,不断在代码编辑器和密码保险库之间切换以创建新的秘密和密码,或者检查现有密码的值变得很繁琐。1Password for VS Code是一个扩展,旨在通过直接从VSCode编辑器访问保险库来解决这个问题。

以下是1Password提供的主要功能概述。

首先,您可以使用命令面板在VSCode中创建一个新密码。您只需将值高亮显示,然后运行命令“1Password: Save in 1Password”。

28c6d2d2713450638034cc7d7f868eb1.jpeg

这样可以让你给定义的变量贴上标签,自动存储到1Password,并替换代码中的引用。

通过1Password Secrets Automation,1Password开发者产品团队引入了秘密引用的概念。它首先将敏感值(例如API凭据或客户端ID)存储在1Password中。然后,可以通过特殊的 op:// URL方案检索该项和您想要获取值的字段,1Password的工具知道如何解析它。它由三个部分组成:保险库、项和字段。这被称为“秘密引用”。

e8a65c5a5296de2a0e1ca7361ce2a7a4.png

现在,不再在配置文件、环境变量文件或代码库的任何其他地方使用真实值,只需在VS Code中插入秘密引用即可。这样做,您可以放心,真实值永远不会意外地出现在您的代码库中。

85effb5a9691c606b35cabd8093a2f39.gif

还可以使用命令`1Password: Get from 1Password`和`1Password: Generate password`从保险库中检索现有项目并创建新项目。同样,这些功能可以减少开发人员在处理机密值时的阻力,因为他们无需离开代码编辑器并中断工作流程。

如果您想在同一项目中存储多个值,比如用户名、密码和电子邮件,它也支持这样做。只需选择每个值并运行“保存到1Password”命令即可。

a5aca1476329d3979008609257978bc6.gif

最后,1Password VSCode 扩展允许您检查和预览存储在保险库中的密码,如果它们在代码中被引用。将光标悬停在密码上将显示其当前值,但仅适用于非敏感密码。为了确保安全,无法预览敏感值,如密码。

2、Decompiler

使用 Decompiler 反编译可执行文件。

Decompiler 有时被用来将编译后的代码转换为源代码,以便开发人员进行检查。反编译在安全领域是一种有价值的工具。它使安全专家能够评估软件的安全性,甚至了解恶意软件的行为。为了做到这一点,通常需要定制的软件,或者根据可执行文件的类型使用不同的软件。

Decompiler 是一款为VS Code提供反编译功能的扩展。您只需在VS Code中右键单击文件,选择“Decompiler”,即可对诸如Windows PE、Linux ELF、IOS、JAR文件和Android APK等二进制可执行文件进行反编译。

356f9a6aeb91d9c8a3872dd7c08ce239.jpeg

反编译后的文件将保存在一个“反编译器”文件夹中。对于JAR文件,这将打开JAR文件并将其解压到其中的文件夹和文件中,从而提供对原始Java文件的访问,如下图所示。

dd75cf12eed8ebf431afb58088bde4c9.jpeg

反编译有可能揭示代码中的安全漏洞,例如缓冲区溢出或竞态条件。发现这些漏洞有助于我们确定软件是否安全,并在发布软件之前采取措施修复它们。

我们还可以使用反编译来了解第三方代码的行为,例如库和API,这些通常以编译形式分发。反编译这些组件有助于评估它们在开发项目中的适用性,并识别任何安全漏洞。

3、Cloak

用Cloak隐藏敏感值

在开发应用程序时,如果环境配置文件中包含密码,开发人员可能希望将这些内容对他人隐藏起来。但是,在协作环境或外部位置(如咖啡馆)工作时,任何人都可以看到你的屏幕,这就变得很困难。通过不断地看守屏幕或不打开文件来保护这些值的安全性是繁琐的,也会影响工作效率。

这是一个包含API密钥和密码的.env文件示例。这些变量的内容可以被任何能看到屏幕的人读取:

36afcfb33958661cc44e6865f50ec281.jpeg

为了克服这个问题,我们可以使用VS Code扩展程序Cloak。Cloak的设计目的是在打开环境配置文件时隐藏屏幕上的秘密值。要激活Cloak,请使用VSCode命令面板并运行“Cloak: Hide Secrets”命令。这将在屏幕上将值变为空白。

d8df65881b24fcd14cfabd714c3c82b5.jpeg

这个扩展程序不会以任何方式修改文件。它只是掩盖了秘密的值,以防止它们被显示出来。Cloak可以防止不需要的人在外部环境中查看秘密和密码,使我们能够在保持应用程序安全的同时继续工作。

4、ESLint

使用ESLint扩展的安全最佳实践

在保护JavaScript项目时,大多数现代扩展只能检测安全标志。然而,开发人员经常需要能够集成到软件交付流程中以自动化安全检查的工具。

ESLint扩展是在使用VS Code编写JavaScript时使用的开源代码检查工具。JavaScript的动态和弱类型特性使其容易出现开发者错误。ESLint通过分析代码来确保其语法正确并符合最佳实践和标准,从而减轻了这种倾向。它会在代码中突出显示语法错误,使我们能够快速发现并修复它们。此外,它还有助于检测错误和潜在的代码漏洞,确保更高水平的代码完整性。

ESLint是一种适合于强制执行代码规范的方式,尤其适用于团队项目。借助这个扩展,每个团队成员都遵循相同的自动化的常见样式和规范。

这里,问候常量使用双引号,而`secondGreeting`使用单引号。另外,请注意有些行以分号结尾,而其他行则没有。尽管存在这些细微差异,但这段代码将能够正确运行,因为这些行在语法上是正确的。

然而,在共同项目中工作时,保持团队成员之间的一致约定非常重要。我们可以使用ESLint来强制执行这一点,通过定义规则或使用ESLint软件包的默认linting设置。我们还可以选择自定义这些设置:

f81fee627c6af13cc7f96198684f6e76.jpeg

ESLint还有自己的一套插件,比如安全插件,可以发现不良的安全实践,包括使用不安全的正则表达式或`eval`函数。我们可以在VS Code中使用这个插件来检查正在开发的代码,确保应用程序是安全的,并在代码通过构建流程之前解决问题。

5、Snyk

检测和修复代码中的漏洞对于构建安全的软件系统至关重要。在恶意行为者利用这些漏洞之前,我们必须迅速解决这些问题。然而,不断在代码编辑器和漏洞扫描器之间切换可能会很繁琐且耗时。

Snyk VSCode 扩展通过在 VSCode 编辑器中提供漏洞扫描和修复功能,解决了这个问题。该扩展会扫描代码中的以下问题类型:

  • 开源安全——我们项目中使用的开源依赖中的安全漏洞。

  • 代码安全 — 我们代码中的安全漏洞。

  • 代码质量 — 我们代码的质量。

  • 基础设施即代码(IAC)安全——IAC模板文件中的配置问题,例如Kubernetes和Terraform。

当我们打开一个项目文件夹时,Snyk代码分析会自动运行。我们还可以通过在命令面板中运行`Snyk: Rescan`来轻松执行手动扫描。

811a31a77188791e006552c4b8ca6798.jpeg

Snyk扩展还提供漏洞检测功能,可以在我们编写代码时突出显示潜在的漏洞。它描述了问题及其严重程度,并提供了一些预防的最佳实践。

802dbbc83e0976dac581446cc3bd1797.jpeg

该扩展还提供了对我们代码进行的各种扫描结果的概述:

5f182e03b846efc1e1eb1115e3389ac8.jpeg

通过实时漏洞检测和详细的修复步骤,Snyk VSCode帮助我们在不中断工作流程的情况下优先考虑安全。

结束

最优秀的开发人员的目标是编写安全、清晰和易于维护的代码,而这五个扩展可以帮助我们实现这一目标。1Password可以保护密码免受第三方的侵害,因此它们不会存储在代码中。ESLint帮助我们编写符合语法规范、没有错误并符合最佳实践的代码。Decompiler 允许我们评估可执行文件的源代码,以确保其没有恶意软件。Cloak 可以隐藏屏幕上显示的敏感值。最后,Snyk VSCode扩展可以快速准确地扫描代码中的漏洞。

在安装VSCode扩展之前,重要的是要研究一下扩展和背后的公司。扩展可以帮助提高安全性,但是一个糟糕的扩展可能会危及我们的应用程序的机密信息和密码。

将密码存储的责任委托给第三方本质上是对安全的信任。因此,在安装任何与密码和秘密管理相关的扩展之前,验证第三方的重要性不可忽视。

为创建更安全的应用程序,没有一种适用于所有情况的解决方案。根据项目的不同,其中一些扩展可能比其他扩展更适用或相关。然而,每个扩展都有独特的优势,可以使 VSCode 编辑器更加方便。

由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/990618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis高可用——主从复制、哨兵模式、cluster集群

1、redis群集有三种模式 分别是主从同步/复制、哨兵模式、Cluster,下面会讲解一下三种模式的工作方式,以及如何搭建cIustr群集 主从复制:主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的…

jenkins创建用户

一.背景 之前用了很多次,现在转到甲方爸爸的岗位,要培养大学毕业生,才发现好记性不如烂笔头。给年轻人写出来。 二.创建用户的过程 1.用户管理界面入口 Dashboard>Manage Jenkins>Jenkins own user database 2.点击右边的按钮“Cre…

Arm 架构 Ubuntu 使用 Docker 安装 Gitlab 并使用

官方 gitlab 文档 我的系统是 arm 架构的 ubuntu 官网没有提供 arm 架构的 docker 的 gitlab 的安装方式,直接安装的也是后来加的,文档也是随笔带过,,,我用到了,记录一下 默认已经安装了 docker 在 docker …

【STM32】常用存储器

常用存储器 RAM 存储器 RAM 是“Random Access Memory”的缩写,被译为随机存储器。所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。而RAM可随读取其内部任意地址的数据,时间都是…

Android 12.0 禁用系统app首次启动动画SplashScreen功能分析

1.前言 在12.0的系统开发中,由于系统增加了新特性,在app首次启动的时候,添加了启动引导动画SplashScreen功能,所以会默认显示 app图标作为一张动画来过度,解决首次启动卡顿问题,接下来分析下看是怎么样添加的,然后禁用就可以了 如图: 2.禁用系统app首次启动动画SplashSc…

关于mybatisplus报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplat的问题

可能是mybatisplus版本不兼容的问题,我之前用的3.4.0,springboot版本是3.1.3,maven版本是3.8.8,运行的时候报了这个错。现在修改了mybatisplus的版本,如下图: 这样就不报错了。 大家可以在这里找合适的my…

DGA行为转变引发了对网络安全的担忧

Akamai的研究人员发现,在域名系统(DNS)流量数据中,动态种子域生成算法(DGA)家族的行为发生了令人担忧的变化。这一发现揭示了恶意行为者如何调整他们的策略来延长他们的指挥与控制(C2)通信通道的寿命,以保护他们的僵尸网络。 从技术角度来看…

Excel文件生成与下载(SpringBoot项目)(easypoi)

说明 通过接口&#xff0c;导出表格。 使用SpringBoot框架和easypoi表格解析框架&#xff0c;生成Excel表格&#xff0c;并通过接口下载。 表格示例 依赖 版本 <easypoi.version>4.4.0</easypoi.version>依赖 <!-- easypoi --> <dependency><…

Matlab图像处理之Lee滤波器

目录 一、前言:二、LEE滤波器2.1 LEE滤波器原理2.2 LEE滤波器实现步骤三、MATLAB代码示例一、前言: LEE滤波器是一种常用于合成孔径雷达(SAR)图像去噪的滤波器。它能增强图像的局部对比度。今天我们将通过MATLAB来实现这种滤波器。 二、LEE滤波器 2.1 LEE滤波器原理 LEE滤…

Linux Debian12将本地项目上传到码云(gitee)远程仓库

一、注册码云gitee账号 这个可以参考其他教程&#xff0c;本文不做介绍。 gitee官网&#xff1a;https://gitee.com/ 二、Linux Debian12安装git 如果Linux系统没有安装git&#xff0c;可以使用下面命令安装git sudo apt install git 三、gitee新建仓库 我这只做测试&…

关于el-date-picker组件修改输入框以及下拉框的样式

因为业务需求&#xff0c;从element plus直接拿过来的组件样式和整体风格不搭&#xff0c;所以要修改样式&#xff0c;直接deep修改根本不生效&#xff0c;最后才发现el-date-picker组件有一个popper-class属性&#xff0c;通过这个属性我们就能够修改下拉框的样式&#xff0c;…

SpringMVC之CRUD(直接让你迅速完成部署)

一、项目创建 首先创建一个基于maven的项目部署&#xff0c;如果有些插件没有的话可以参考mybatis入门Idea搭建 二、配置依赖导入 依赖导入 1、pom.xml 需要根据自己的文件来进行导入&#xff0c;并不是原本照着导入 <project xmlns"http://maven.apache.org/POM/4.0.0…

安防视频监控平台EasyCVR可视化管理平台助力森林公园安全

EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等&#xff0c;视频智能分析平台EasyCVR融合性强、开放度高、部署轻快&#xff0c;在智慧工地、智慧园区…

macOS Ventura 13.5.2(22G91)发布,附黑/白苹果镜像下载地址

系统介绍&#xff08;下载请百度搜索&#xff1a;黑果魏叔&#xff09; 黑果魏叔 9 月 8 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5.2 更新&#xff08;内部版本号&#xff1a;22G91&#xff09;&#xff0c;本次更新距离上次发布隔了 21 天。 本次更新查…

【备忘】清理Office缓存

【背景】电脑安装了M365 Apps for enterprise的客户端&#xff0c;遇到不常见的奇怪问题。尝试看清理缓存是否可以解决。 【清理步骤】 1. 关闭所有Office365 应用&#xff1b; 2. 搜索 %AppData% &#xff0c;并打开该文件夹&#xff1b; 3. 进到 AppData > Local > M…

单片机控制直流电机

硬件电路 芯片 单片机的GPIO不能直接连接电机&#xff0c;IO的电流不够或者会烧坏芯片&#xff0c;需要连接一个驱动芯片 &#xff0c;ULN2003 是输入高&#xff0c;输出为低 ULN2003 要输出高电平&#xff0c;必须在输出口外接上拉电阻&#xff0c;所以 将 ULN2003 的 2 个输…

UMA 2 - Unity Multipurpose Avatar☀️四.UMA人物部位的默认颜色和自定义(共享)颜色

文章目录 🟥 人物颜色介绍1️⃣ 使用默认颜色2️⃣ 使用自定义颜色🟧 UMA自定义颜色的作用🟨 自定义颜色还可作为共享颜色🟥 人物颜色介绍 UMA不同部位的颜色分为默认的内置颜色和我们新定义的颜色. 1️⃣ 使用默认颜色 比如不勾选UseSharedColor时,使用的眼睛的默认…

uni-app 之 uni.request 网络请求API接口

uni-app 之 uni.request 网络请求API接口 image.png <template><!-- vue2的<template>里必须要有一个盒子&#xff0c;不能有两个&#xff0c;这里的盒子就是 view--><view>--- uni.request 网络请求API接口 ---<view><!-- 免费的测试接口 --…

iOS左对齐自动换行collection样式

前言 想必大家工作中或多或少会遇到下图样式的UI需求吧 像这种cell长度不固定&#xff0c;以此向右对齐排列的样式UI可以说是很常见的 实现方式 一般的实现可能主要是分一下两种&#xff1a; 1、一种是用button依次排列实现&#xff0c;动态计算text宽度&#xff0c;记录之…

【数据结构初阶】二、 线性表里的顺序表

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【数据结构初阶】一. 复杂度讲解_高高的胖子的博客-CSDN博客 1 . 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实…