前5个VS代码扩展程序的安全性
#javascript #vscode #codesecurity

开发高质量的软件应用程序可能很艰巨,因为许多活动部件必须融合在一起才能创建一个工作解决方案。这就是为什么开发人员需要他们能获得的所有帮助和便利,尤其是在确保其应用程序时。

Visual Studio Code(VS代码)由于各种原因是最受欢迎的开源代码编辑器之一。它与前三个操作系统(OSS),Windows,MacOS和Linux兼容,我们可以轻松地将其配置为我们的偏好。最重要的是,我们可以安装扩展以增强其功能。

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

1.使用1Password确保秘密和密码安全

在代码中将密码和秘密作为纯文本是主要的安全风险,因为它可以轻松损害敏感信息。最好的做法是将这些值存储在外部保险库中并使用变量访问它们。

但是,在编写代码时,要继续从代码编辑器交换到密码库并再次返回以创建新的秘密和密码或检查现有秘密的值会变得乏味。 1Password for VS Code是一个扩展程序,旨在通过直接从VS代码编辑器提供保险库访问来减轻此问题。

这是1Password提供的关键功能的摘要。

首先,您可以使用命令调色板从VS代码创建新密码。您只需突出显示一个值,然后运行命令1Password: Save in 1Password


这使您可以标记该项目,将其存储在1Password中,然后在代码中替换参考。

您可以通过自动秘密检测将此功能进一步。 1Password vs Code扩展名检测并突出显示代码或环境配置文件中的潜在秘密或密码值。


VS Code的Codelens功能 - 一个强大的工具,显示代码编辑器内的代码元素之间的关系 - 将在突出显示的选项上方显示保存1Password 。如上图所示,此选项使我们可以快速访问Save in 1Password命令。

也可以分别从保险库中检索现有项目,并分别使用命令1Password: Get from 1Password1Password: Generate password创建新项目。同样,这些功能在使用秘密价值时减少了开发人员的摩擦,因为他们永远不需要离开代码编辑器并中断其流程。

最后,1Password vs代码扩展程序允许您检查和预览保存在库中的秘密,如果它们在代码中引用。将光标悬停在一个秘密上,将显示其当前的价值,但仅针对非敏感的秘密。无法预览诸如密码之类的敏感值,以确保它们保持安全。

2.反编译器的反编译可执行文件

分解器有时用于将代码编译为其源代码,以便开发人员可以对其进行检查。解说是安全字段中有价值的工具。它允许安全专家评估软件的安全性,甚至了解恶意软件的行为。为此,根据可执行文件的类型,它通常需要定制或有时不同的软件。

Decompiler是一个VS代码扩展,将倒数功能带入VS代码中。您可以通过简单地右键单击文件并选择 epmodompile 。


然后将分解文件提供在反编译器文件夹中。对于JAR文件,这将JAR打开到JAR中包含的文件夹和文件中,提供对原始Java文件的访问,如下图中所示。


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

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

3.用斗篷隐藏敏感的价值

开发人员从事包含秘密和密码的环境配置文件的应用程序可能希望将这些文件隐藏在其他方面。但是,在协作环境或外部位置(例如CAFâ©)工作时,这很难在这里看到您的屏幕。通过不断看肩膀或不打开文件来确保这些价值观安全,这很麻烦,并阻碍了生产力。

这是一个.ENV文件的示例,其中包含API键和密码。这些变量的内容可以由任何可以看到屏幕的人读取:


为了克服这一点,我们可以使用VS代码扩展Cloak。 Cloak旨在将秘密值隐藏在我们的环境配置文件打开时在屏幕上显示。要激活斗篷,请使用VS Code命令调色板并运行Cloak: Hide Secrets命令。这将使屏幕上的值清空:


此扩展名不会以任何方式修改文件。它只是掩盖了秘密的价值,以便它们显示出来。斗篷阻止眼睛在外部环境中查看秘密和密码,使我们能够在维护应用程序的安全性的同时继续工作。

4. ESLINT扩展的安全性最佳实践

确保JavaScript项目时,大多数现代扩展只能检测到安全标志。但是,开发人员通常需要可以集成到软件交付管道中的工具来自动化安全检查。

ESLint extension是编写JavaScript时使用的VS代码中使用的开源绒毛实用程序。 JavaScript的动态性和松散性的性质使众所周知的开发人员错误众所周知。 ESLINT通过分析代码来确保其句法正确并符合最佳实践和标准,从而减轻了这种趋势。它突出了代码中的语法错误,使我们很容易找到并快速修复它们。此外,它有助于检测错误和潜在的代码漏洞,确保更高级别的代码完整性。

ESLINT是执行代码标准的合适方法,尤其是在小组项目上。在此扩展程序的帮助下,每个团队成员都遵循相同的自动化类型和标准集。

让我们以下面的代码段为例:


在这里,问候常数使用双引号,而secondGreeting则使用单引号。另外,请注意,有些线以半隆而结束,而另一些行则没有。尽管有句法正确,但该代码将适当地运行。

但是,在共享项目工作时,重要的是要在所有团队成员中保持一致的惯例。我们可以使用ESLINT通过定义规则或使用ESLINT软件包使用默认的绒布设置来实施此功能。我们还可以选择自定义这些设置:


ESLINT还拥有自己的一套插件,例如security plugin,可以发现不良安全实践,包括使用不安全的正则表达式或eval函数。我们可以在VS代码中使用此插件在开发时检查该插件,以确保应用程序安全并在代码通过构建管道运行之前解决问题。

5.带Snyk的扫描代码和第三方套餐

检测和修复代码中的漏洞对于构建安全软件系统至关重要。在恶意演员可以利用这些问题之前,我们必须迅速解决这些问题。但是,在代码编辑器和漏洞扫描仪之间不断切换可能是乏味且耗时的。

Snyk VS Code extension通过直接从VS代码编辑器提供漏洞扫描和补救来减轻此问题。此扩展程序扫描代码中以下类型的问题:

  • 开源安全 - 我们项目中使用的开源依赖关系中的安全漏洞。
  • 代码安全 - 我们的代码中的安全漏洞。
  • 代码质量 - 我们代码的质量。
  • 基础架构作为代码(IAC)安全性 - IAC模板文件中的配置问题,例如Kubernetes和Terraform。

SNYK代码分析在我们打开项目文件夹时会自动运行。我们还可以通过在命令调色板中运行Snyk: Rescan轻松执行手动扫描。


SNYK扩展还提供了漏洞检测,该检测突出了我们编写代码中的潜在漏洞。它描述了问题及其严重性水平,以及一些预防的最佳实践。


此扩展程序还概述了我们代码上执行的各种扫描的结果:


通过实时漏洞检测和详细的补救步骤,Snyk vs代码有助于我们确定安全性而不会破坏工作流程。

结论

最佳开发人员旨在编写安全,清洁和可维护的代码 - 这五个扩展可以帮助我们做到这一点。 1Password可以使密码免受第三方的安全保护,因此它们不存储在代码中。 ESLINT有助于编写句法正确的代码,该代码没有错误,并符合最佳实践。分解器允许我们评估可执行文件的源代码,以确保它们没有恶意软件。披风隐藏了敏感值在屏幕上显示。最后,SNYK VS代码扩展很快,准确地扫描了漏洞。

在安装VS代码扩展程序之前,重要的是研究扩展名及其背后的公司。扩展可以帮助您解决安全性,但是糟糕的一个可以损害我们的应用程序秘密和密码。

固有地信任密码存储的第三方将安全委托给第三方的责任。因此,在安装任何扩展程序之前,尤其是与密码和秘密管理相关的扩展程序之前,必须验证第三方。

没有一个适合创建更安全应用程序的全适合解决方案。根据项目的不同,其中一些扩展可能比其他扩展更适合或更相关。但是,每个都有独特的优势,可以使VS代码编辑器更加方便。

今天尝试这些扩展名,看看它们可以带来的区别。