在前端开发中,我们经常需要使用外部库来帮助我们实现一些复杂的功能。但是,在使用外部库时,我们需要确保代码的安全性和可靠性,避免导入恶意代码或不可预期的结果。此时,我们就需要学习如何在 Deno 中安全地使用外部库。
什么是 Deno?
Deno 是一个基于 TypeScript 和 V8 引擎的 JavaScript/TypeScript 运行时环境。它由 Node.js 的前开发者 Ryan Dahl 创建,旨在解决 Node.js 中一些存在的问题。与 Node.js 不同的是,Deno 没有包管理器,直接支持 ES 模块,并使用标准的 Web API 代替 Node.js 中的核心模块。
如何安全地使用外部库?
在 Deno 中,我们可以使用 import
语句导入外部库。但是,如果我们不注意导入的库的来源和内容,可能会导入具有安全隐患的代码。为了保证代码的安全性和可靠性,我们可以采取以下措施:
1. 使用 HTTPS/HTTP2 资源引入库
在使用 import
导入库时,我们应该尽可能使用 HTTPS/HTTP2 资源,避免使用 HTTP,因为 HTTP 资源可能会被恶意攻击者劫持,并注入恶意代码。在 Deno 中,我们可以直接使用 https://
前缀来引入 HTTPS 资源,如下所示:
import * as abc from "https://example.com/abc.ts";
如果我们需要引入 HTTP 资源,可以加入 --allow-net
参数来允许 Deno 访问网络,如下所示:
deno run --allow-net app.ts
2. 使用版本控制
在使用外部库时,我们应该尽可能使用经过版本控制的库,避免使用不受信任的第三方代码。在 Deno 中,我们可以使用 git
库来导入代码,如下所示:
import * as abc from "https://deno.land/x/abc/mod.ts";
在此例中,https://deno.land/x
通过 Git 来进行版本控制,保证了代码的可靠性。
3. 校验代码的完整性
在导入外部库时,我们可以使用内置的 crypto
模块来对代码的完整性进行校验,避免被篡改的代码被执行。如下所示:
-- -------------------- ---- ------- ------ - ---------- - ---- -------------------------------------------- ----- -------- - ----- ------------------------------------ ----- ---- - ----- ----------------------- ----- ---- - --------------------------------------------- -- ----- --- ------------------------------------------- - ----- --- -------------- ------- - ------------------
在此例中,我们使用 createHash
函数来计算代码的 SHA256 散列值,并将其与预期值进行比较,从而校验代码的完整性。
4. 指定权限
在使用 Deno 运行脚本时,我们可以使用 --allow-xxx
参数来指定脚本所需的权限,避免被恶意代码滥用。如下所示:
deno run --allow-read app.ts
在此例中,我们指定了程序可以访问文件系统的权限。在实际开发过程中,我们需要根据实际情况,合理地指定需要的权限,避免不必要的风险。
示例代码
以下是一个使用 Deno 中安全地使用外部库的示例代码:
-- -------------------- ---- ------- ------ - -- --- ---- ----------------------------- ------ - ---------- - ---- -------------------------------------------- ----- -------- - ----- ------------------------------------ ----- ---- - ----- ----------------------- ----- ---- - --------------------------------------------- -- ----- --- ------------------------------------------- - ----- --- -------------- ------- - ------------------
在此例中,我们通过 import
导入了一个 HTTPS 资源,并使用 createHash
函数计算了导入的代码的 SHA256 散列值,并验证其完整性。
总结
在本文中,我们介绍了在 Deno 中安全地使用外部库的方法,包括使用 HTTPS/HTTP2 资源、使用版本控制、校验代码的完整性和指定权限。通过这些方法,我们可以在 Deno 中使用外部库,同时保证代码的安全性和可靠性。希望本文能够对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64757188968c7c53b0282dc3