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

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.rhkb.cn/news/125835.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eNSP-抓包实验

拓扑结构图: 实验需求: 1. 按照图中的设备名称,配置各设备名称 2. 按照图中的IP地址规划,配置IP地址 3. 使用Wireshark工具进行抓ping包,并分析报文 4. 理解TCP三次握手的建立机制 实验步骤: 1、配置P…

Python之Xlwings操作excel

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、xlwings简介二、安装与使用1.安装2.使用3.xlwings结构说明 二、xlwings对App常见的操作App基础操作工作簿的基础操作工作表的基础操作工作表其他操作 读取单元格…

uview indexList 按字母跳转不了

点击字母跳转不到位的问题&#xff1a;在<u-index-list>添加方法select“clickSelect“ 锚点要加id&#xff0c;用对应的字母做为id值&#xff0c; <u-index-anchor :id"key" :index"key"/> <template><view><view class&qu…

快速排序算法的递归和非递归

基本思路 选择一个基准值&#xff0c;将数组划分三个区域&#xff0c;小于基准值的区域位于左侧&#xff0c;等于基准值的区域位于中间&#xff0c;大于基准值的区域位于右侧。将大于和小于区域继续进行分区&#xff0c;周而复始&#xff0c;不断进行分区和交换&#xff0c;直…

超详细的 pytest 教程(一)使用入门篇

前言 pytest到目前为止还没有翻译的比较好全面的使用文档&#xff0c;很多英文不太好的小伙伴&#xff0c;在学习时看英文文档还是很吃力。本来去年就计划写pytest详细的使用文档的&#xff0c;由于时间关系一直搁置&#xff0c;直到今天才开始写。本文是第一篇&#xff0c;主…

【JAVA】Object类与抽象类

作者主页&#xff1a;paper jie_的博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和…

Vue--1.4Vue指令

Vue会根据不同的指令&#xff0c;针对标签实现不同的功能。 指令&#xff1a;带有v-前缀的特殊标签属性 v-前缀"表达式" 1.v-html 作用:动态解析标签innerHTML <!doctype html> <html> <head><meta charset"utf-8"><meta …

计算机竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

详解初阶数据结构之顺序表(SeqList)——单文件文件实现SeqList的增删查改

目录 一、线性表 二、顺序表 2.1概念及结构 2.2接口实现 2.3动态顺序表的创建 2.3动态顺序表的初始化 2.3.1传值初始化 2.3.2传址初始化 2.4动态顺序表的清空 2.5动态顺序表的扩容 2.6动态顺序表内容的打印 三、动态顺序表的使用 3.1尾插尾删 3.1.1尾插 3.1.2尾删…

软件测试/测试开发丨ChatGPT:带你进入智能对话的新时代

简介 人工智能时代来临 我们正处于AI的iPhone时刻。——黄仁勋&#xff08;英伟达CEO&#xff09; ChatGPT 好得有点可怕了&#xff0c;我们距离危险的强人工智能不远了。——马斯克&#xff08;Tesla/SpaceX/Twitter CEO&#xff09; 以上的内容说明我们现在正处于一个技术大…

【uni-app】

准备工作 1.下载hbuilder&#xff0c;插件使用Vue3的uni-app项目 2.需要安装编译器 3.下载微信开发者工具 4.点击运行->微信开发者工具 5.打开微信开发者工具的服务端口 效果图 page.json&#xff08;添加路由&#xff0c;修改底层导航栏&#xff0c;背景色&#xff09…

读书笔记:多Transformer的双向编码器表示法(Bert)-1

多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers&#xff0c;即Bert&#xff1b; 本笔记主要是对谷歌Bert架构的入门学习&#xff1a; 介绍Transformer架构&#xff0c;理解编码器和解码器的工作原理&#xff1b;掌握Bert模型架构…

2023.9.7 关于 TCP / IP 的基本认知

目录 网络协议分层 TCP/IP 五层&#xff08;四层&#xff09;模型 应用层 传输层 网络层&#xff08;互联网层&#xff09; 数据链路层&#xff08;网络接口层&#xff09; 物理层 网络数据传输的基本流程 网络协议分层 为什么需要分层&#xff1f; 分层之后&#xff0c…

MATLAB实现数据插值

目录 一.理论知识 二.一维插值实例 三.二维插值实例 一.理论知识 所谓插值&#xff0c;顾名思义&#xff0c;插入数值。很多时候&#xff0c;我们仅有离散点上的数据&#xff0c;这时如果我们想要分析变量之间的函数关系&#xff0c;则无法实现。但如果通过插值处理&#xf…

PCL入门(四):kdtree简单介绍和使用

目录 1. kd树的意义2. kd树的使用 参考博客《欧式聚类&#xff08;KD-Tree&#xff09;详解&#xff0c;保姆级教程》和《(三分钟)学会kd-tree 激光SLAM点云搜索常见》 1. kd树的意义 kd树是什么&#xff1f; kd树是一种空间划分的数据结构&#xff0c;对于多个维度的数据&a…

电商(淘宝1688京东拼多多等)API接口服务:提升商业效率和用户体验的关键

电商API接口服务&#xff1a;提升商业效率和用户体验的关键 随着电子商务的飞速发展&#xff0c;电商企业需要不断提升自身的业务能力和服务质量&#xff0c;以应对日益激烈的市场竞争。为了更好地满足商家和消费者的需求&#xff0c;电商API接口服务应运而生。本文将探讨电商…

计算机毕设 大数据商城人流数据分析与可视化 - python 大数据分析

文章目录 0 前言课题背景分析方法与过程初步分析&#xff1a;总体流程&#xff1a;1.数据探索分析2.数据预处理3.构建模型 总结 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到…

jmeter调试错误大全

一、前言 在使用jmeter做接口测试的过程中大家是不是经常会遇到很多问题&#xff0c;但是无从下手&#xff0c;不知道从哪里开始找起&#xff0c;对于初学者而言这是一个非常头痛的事情。这里结合笔者的经验&#xff0c;总结出以下方法。 二、通过查看运行日志调试问题 写好…

【常用代码14】el-input输入框内判断正则,只能输入数字,过滤汉字+字母。

问题描述&#xff1a; el-input输入框&#xff0c;只能输入数字&#xff0c;但是不能显示输入框最右边的上下箭头&#xff0c; <el-input v-model"input" type"number" placeholder"请输入内容" style"width: 200px;margin: 50px 0;&…

两种解法解决LCR 008. 长度最小的子数组【C++】

文章目录 [LCR 008. 长度最小的子数组](https://leetcode.cn/problems/2VG8Kg/description/)解法暴力解法滑动窗口&#xff08;双指针法&#xff09; LCR 008. 长度最小的子数组 解法 暴力解法 //暴力解法&#xff1a; //使用双for循环依次遍历数组&#xff0c;罗列出所有情况…