拿去玩:
import time
import re
def redos(data):
start = time.time()
regex = re.compile("^(a+)+$")
#regex = re.compile('(a+)+')
regex.match(data)
end = time.time() - start
print("%f" % end)
if __name__ == '__main__':
for i in xrange(1,30):
data = 'a'*i + '!'
redos(data)
修改自: https://github.com/pete911/redos/blob/master/redos.py
介绍:
https://msdn.microsoft.com/zh-cn/magazine/ff646973.aspx
https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
目前知道的几个 Evil Regex :
http://stackoverflow.com/questions/12841970/how-can-i-recognize-an-evil-regex
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.