safe-regex中文文档|safe-regex js中文教程|解析

npm npmdoc 2年前 (2021-12-10) 596次浏览

safe-regex中文文档|safe-regex js中文教程|解析

安装命令:npm i safe-regex

safe-regex


通过将
星高限制为 1 来检测潜在的
灾难性
指数时间正则表达式

警告:这个模块有误报和漏报。使用vuln-regex-detector来提高准确性。

构建状态

例子

假设您有一个名为 的脚本safe.js

var safe = require('safe-regex');
var regex = process.argv.slice(2).join(' ');
console.log(safe(regex));

这是它的行为:

$ node safe.js '(x+x+)+y'
false
$ node safe.js '(beep|boop)*'
true
$ node safe.js '(a+){10}'
false
$ node safe.js '\blocation\s*:[^:\n]+\b(Oakland|San Francisco)\b'
true

方法

const safe = require('safe-regex')

const ok = safe(re, opts={})

ok无论正则表达式re是否安全且不可能是灾难性的,都返回一个布尔值

re可以是一个RegExp对象或只是一个字符串。

如果re是字符串并且是无效的正则表达式,则返回false

  • opts.limit– 整个正则表达式中允许的最大重复次数。默认值:25

安装

npm做:

npm install safe-regex

资源

如果我的项目有一个超线性正则表达式,我该怎么办?

  1. 确认它可以通过不受信任的输入访问
  2. 如果是,您可以考虑是否可以通过修剪输入、修改正则表达式或用另一种算法(如字符串函数)替换正则表达式来防止最坏情况的行为。例如,请参见本文中的表 5
  3. 如果这些解决方案看起来都不可行,您也可以考虑更改正则表达式引擎。RE2绑定可能会奏效,但仔细测试,以确认没有任何语义的可移植性问题

进一步阅读

以下文件可能会有所启发:

项目政策

版本控制

该项目遵循语义版本控制 2.0 (semver)

以下是 MAJOR、MINOR 和 PATCH 更新的项目特定含义:

  • 主要:引入了“不兼容”的 API 更改。这个模块有两种类型:

    • 修改界面的变化
    • 导致之前标记为安全的任何正则表达式被标记为不安全的更改
  • 次要:以向后兼容的方式添加了功能。这个模块有两种类型:

    • 重构分析但不改变结果
    • 修改分析以减少误报,而不影响否定(假或真)
  • PATCH:我不希望在这个模块中使用 PATCH

执照

麻省理工学院

项目贡献人员列表:


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:safe-regex中文文档|safe-regex js中文教程|解析
喜欢 (0)
.excerpt .focus {display:none}