- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我试图重新创建 regular expression denial of service attack using (a+)+
regexp and aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
(with large amounts of a
) input using jshell:
Pattern.compile("(a+)+")
.matcher("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!")
.matches()
但每次我尝试时都很快完成。 Java 中的正则表达式实现与其他实现不同吗?或者链接的维基百科页面有误?
(顺便说一句。如果相关的话,我正在使用 Java 11)
编辑:看起来它与 Java 版本相关,当我在 Java 8 上尝试时,它挂起,但在 Java 9 和 11 中它可以立即运行。那些可能影响它的版本之间发生了什么变化?现在所有正则表达式在 Java 中都是安全的吗?
是否有特定的 Java JEP 更改了正则表达式的实现?我想知道哪种正则表达式对于较新的 Java 仍然是个问题。
最佳答案
根据文章RSPEC-2631 , ReDoS 问题已经在 Java 9 及之后的版本中得到处理:
Java runtimes like OpenJDK 9+ are mitigating this problem by having additional protections in their implementation of regular expression evaluation. In those runtime the example above is not vulnerable.
关于java - Java ReDos 易受攻击吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53048859/
我有一个带有 4 个编辑框和一个备忘录的表单,我正在尝试弄清楚如何实现多个撤消重做,例如 - 因此,如果用户在编辑 3,1,2、备忘录中输入文本,然后编辑 4,我想按反转顺序撤消,并按原始顺序重做。
我正在开发一个具有富文本编辑器功能的应用程序。在 ZSSRichTextEditor 之上我已经编写了我的编辑器代码。这里我的编辑器是 UIWebView,它将被 javascript 代码注入(in
我在 JavaScript 中使用正则表达式验证日期,但是当我运行 SonarQube 进行代码分析时。它将正则表达式显示为安全漏洞。 示例 1: 下面是正则表达式模式(链接到正则表达式的来源 htt
正则表达式: ^\d+(\.\d+)*$ 我试图打破它: 1234567890.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.
我最近遇到了一些重做攻击问题。 简单步骤讲解 :Regex denial of services :这意味着攻击者可以放置一些恶意/精心设计的输入来使您的服务器无法停止找到正确的模式,从而占用您的整个
当我在上面明确声明时,我在 main.cpp 上遇到 redo char(粗体)错误。我还想知道为什么它要求我在 using namespace std 前面放一个分号,因为我以前从未这样做过。 //
我试图重新创建 regular expression denial of service attack using (a+)+ regexp and aaaaaaaaaaaaaaaaaaaaaaaaa
Undo/Redo 的最佳数据结构是什么,(ctrl+z , ctrl+y) ?前几天我们老师说栈最适合undo,但是我在想双链表 .. 有没有其他数据结构能以更好的质量达到我们的目的?或这两者之一引
pycharm中出现一条消息 缺少键盘映射 找不到键盘映射“Windows 正确重做” 我不知道这个消息是什么意思以及如何解决它。请帮忙 最佳答案 您应该打开 Windows Proper Redo.
在我的理解中,mysql binlog 完全可以作为 InnoDB 的重做日志。 那么,启用binlog后,为什么InnoDB还要同时写redo log而不是直接切换使用binlog呢?这不会显着降低
这是 W3C HTML spec 建议用于电子邮件验证的正则表达式模式: ^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0
我创建了一个自定义 QPushButton,允许从菜单或 QColorDialog 中选择颜色。由于它是“主题”编辑器的一部分,我还添加了对 QUndoStack 的支持:每次更改自定义按钮的颜色时,
我有一个文件夹 (MY_FILES),其中包含大约 500 个文件,并且每天都会收到一个新文件并将其放置在那里。每个文件的大小约为 4Mb。 我刚刚开发了一个简单的“void main”来测试我是否可
我正在阅读有关 ReDOS 的内容。 https://en.wikipedia.org/wiki/ReDoS 如果您在 Node.js 中运行此代码,似乎: console.time('aaa');
我正在学习 Python,我遇到了一种情况,我想使用迭代器中的项目。棘手的部分是在某些条件下,我想“取消迭代”。也就是说,在我循环之前将一个项目放回迭代器的前面。 例如,假设我正在从树上摘苹果。我的果
前言 最开始了解mysql实现的时候,总听到redo log, wal(write-ahead logging),undo log这些关键词,了解到redo log主要是用于实现事务的持久化的。为
我需要实现 undo和 redo我的应用程序中的功能。我发现最简单的方法(?)是使用 openlayers undo和 redo内置功能。 -> http://dev.openlayers.org/d
我想向我的 Mac 应用程序添加撤消/重做功能。该应用程序可与笔记一起使用,我想在用户删除笔记时添加“撤消”操作。 这工作得很好,“撤消删除注释”菜单在用户删除注释后变为事件状态,但是在使用“撤消删除
我也在 Qt 论坛中发布了这个问题,here 我正在尝试在我的应用程序中执行撤消和重做命令。我有一个 QTreeWidget,我想让用户撤消和重做一个操作(例如,更改 QTreeWidget 中 QT
我试图在我的 mfc 应用程序中创建重做/撤消功能,但是当我试图撤消 CLine 对象时 - 它无法正常工作。我做错了什么?对不起我的英语! void CKonokhovDoc::OnEditUndo
我是一名优秀的程序员,十分优秀!