原文:正则表达式回溯漏洞

背景: 产品有个通过正则表达式验证用户输入电话号码是否合法的功能 没有约束输入号码的长度 ,研发人员写的正在表达式 java代码 :regexp d s d ,被别人测出来存在正则表达式回溯的漏洞,即输入很长一段字符,触发正则回溯后,导致CPU占用达到 。搜了下相关资料,梳理下这个漏洞的发生原因如下。 .正则表达式引擎 说起回溯陷阱,要先从正则表达式的引擎说起。正则引擎主要可以分为基本不同的两大类 ...

2019-05-07 23:12 0 802 推荐指数:

查看详情

正则表达式匹配回溯

正则表达式匹配回溯:一.基本概念:NFA引擎的正则表达式会依次处理各个子表达式或者组成元素,遇到需要在两个都可能进行成功匹配的子表达式或者组成元素之间进行选择的时候,会首先选择其一,同时会记录另一个的状态,以备后面使用。注意:这里所说的子表达式并非只有用小括号括起来的表达式 ...

Sat Sep 24 08:15:00 CST 2016 0 2942
正则表达式 —— 回溯陷阱

100 处。通过排查代码,我们知道这个方法的主要功能是校验 URL 是否合法。 很奇怪,一个正则表达式 ...

Thu Jan 17 03:26:00 CST 2019 0 970
正则表达式中的回溯

在大多数现代正则表达式实现中(包括JavaScript所需的),回溯是匹配过程的基本组成部分。它很大程度上也是正则表达式如此美好和强大的根源。然而,回溯计算代价昂贵,如果你不够小心的话容易失控。虽然回溯是整体性能的唯一因素,理解它的工作原理,以及如何减少使用频率,可能是编写高效正则表达式最重 ...

Sat Jun 30 18:05:00 CST 2012 0 4865
正则表达式回溯

1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“-”,“_”等看到这个要求的时候,自然而然地想到了正则表达式。于是就有了下面的表达式(写的比较龊 ...

Tue Jul 02 19:16:00 CST 2019 3 1927
[2019.04.22]正则表达式的失控——回溯循环

今天做练习的时候觉得题干给出的正则表达式不能正确检测一些非法的电邮地址,所以打算自己动手写一个。在做测试的时候,写出了全新的BUG,并且由此开启了对正则表达式及其匹配引擎的一些了解。 1.什么是回溯循环 引用regular-expression.info的说法,我稍作翻译来解释这个现象 ...

Tue Apr 23 02:20:00 CST 2019 2 441
正则表达式

1.正则表达式:记录文本的规则的代码 \b:元字符,单词分界处,匹配一个位置 .:元字符,匹配出了除了换行符以外的任意字符 *:元字符,指定*前边的内容可以连续重复以使整个表达式得到匹配 \d:元字符,匹配一位数字 \s:匹配任意的空白字符,如空格,制表符,换行符,中文全角空格 \w ...

Thu Mar 15 08:47:00 CST 2018 0 1016
正则表达式

日常工作中,总会遇到正则的时候,索性就把它 搞清楚。后来才发现正则很好用,完全可以替代split和repleace的那种需要循环遍历时的无赖。 简单表达式 最简单的正则表达式大家都已熟悉,即文字字符串。特定的字符串可通过文字本身加以描述;像 foo 这样的正则表达式模式可精确匹配输入的字符串 ...

Wed Mar 13 23:05:00 CST 2013 7 1241
正则表达式

1 简介/动机 正则表达式 :为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。 Python 通过标准的re模块来支持正则表达式。 注意:此处我们提到的搜索和匹配意义不一样 你的第一个正则表达式 正则表达式 匹配的字符串 ...

Fri Nov 01 23:22:00 CST 2019 10 31
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM