Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
url-regex-safe — 用于URL的正则表达式匹配。url-regex的维护、安全且浏览器友好版本。解决了Node.js服务器中的CVE-2020-7661。 | Kitploit
工具/GitHubGitHub/spamscanner/url-regex-safe
通用工具静态分析漏洞分析脚本与自动化Web安全
GitHubspamscanner/url-regex-safe

url-regex-safe

用于URL的正则表达式匹配。url-regex的维护、安全且浏览器友好版本。解决了Node.js服务器中的CVE-2020-7661。

查看仓库
8116153年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

url-regex-safe

build status code style styled with prettier made with lass license npm downloads

用于 URL 的正则表达式匹配。维护中、安全且浏览器友好版的 [url-regex][]。解决了 Node.js 服务器的 [CVE-2020-7661][cve]。适用于 Node v14+ 和浏览器。为 [Spam Scanner][spam-scanner] 和 [Forward Email][forward-email] 维护。

目录

  • 前言
  • 安装
  • 使用方法
    • Node
    • 浏览器
  • 选项
  • 快速提示与从 url-regex 迁移
  • 限制
  • 贡献者
  • 许可证

前言

在发现 [CVE-2020-7661][cve] 并 公开披露(通过我在 [Spam Scanner][spam-scanner] 和 [Forward Email][forward-email] 上的工作)后,我使用了 [url-regex][] 的一个实现,并在其上添加了一些额外逻辑来过滤掉错误的 URL 匹配。

然而,在 [Forward Email][forward-email] 的生产环境中使用它(每周处理数十万封邮件)后,我发现并记录了 [url-regex][] 的更多核心问题。

意识到 [url-regex][] 已不再积极维护,截至编写本文时仍有 9 个未合并的拉取请求,并且缺乏浏览器支持后,我决定为所有人编写这个包,并合并所有开放的拉取请求。

这个包希望能更贴近现实世界中 URL 正则表达式的预期用法,并允许用户按需配置。如果这个包对你有帮助,请查看 [Forward Email][forward-email],并在 GitHub 上浏览我们的源代码,了解我们如何使用这个包。

安装

注意: 此包的默认行为会尝试加载 re2(它是一个可选的 peer 依赖,用于防范正则表达式拒绝服务攻击等)。如果你想使用这一行为,必须通过 npm install re2 安装 re2;否则会回退到使用普通的 RegExp 实例。从 v4.0.0 开始,我们添加了一个选项,如果你希望强制此包不尝试加载 re2(例如,它存在于你的 node_modules 中但你不想使用它),只需传入 re2: false 作为选项。

[npm][]:

npm install url-regex-safe

使用方法

Node

我们通过为 Node.js 使用引入 [RE2][] 来解决了 [CVE-2020-7661][cve]。通过 url-regex-safe,你无需再手动将 URL 正则表达式包装成 new RE2(urlRegex())(我们会自动为你完成)。

const urlRegexSafe = require('url-regex-safe');

const str = 'some long string with url.com in it';
const matches = str.match(urlRegexSafe());

for (const match of matches) {
  console.log('match', match);
}

console.log(urlRegexSafe({ exact: true }).test('github.com'));

浏览器

由于 [RE2][] 并非为浏览器设计,因此不会在浏览器中使用,所以 [CVE-2020-7661][cve] 在客户端仍然是一个问题。不过它并不严重,因为最多只会导致浏览器标签页崩溃(而在 Node.js 端则会导致整个进程崩溃并抛出内存溢出异常)。

VanillaJS

如果你只是使用 <script> 标签,这个解决方案适合你!

<script src="https://unpkg.com/url-regex-safe"></script>
<script type="text/javascript">
  (function() {
    var str = 'some long string with url.com in it';
    var matches = str.match(urlRegexSafe());

    for (var i=0; i<matches.length; i++) {
      console.log('match', matches[i]);
    }

    console.log(urlRegexSafe({ exact: true }).test('github.com'));
  })();
</script>

打包工具

假设你正在使用 [browserify][]、[webpack][]、[rollup][] 或其他打包工具,你可以直接按照上面的 Node 用法操作。

TypeScript

要将此包与 TypeScript 一起使用,你可以安装 @types/url-regex-safe 包来获取类型定义。

npm install --save-dev @types/url-regex-safe

选项

下载工具