Regex Perl中用于捕获Fork-bomb命令的正则表达式
我试图用Perl编写一个正则表达式来捕获以下fork-bomb命令:Regex Perl中用于捕获Fork-bomb命令的正则表达式,regex,perl,bash,shell,Regex,Perl,Bash,Shell,我试图用Perl编写一个正则表达式来捕获以下fork-bomb命令: :(){ :|:& };: 下面是我想到的 :\s*(\s*)\s*{\s*:\s*|\s*:\s*&\s*}\s*;.*: 我同意这个正则表达式有一些限制。fork-bomb命令可以很容易地更改,并且给定的正则表达式不会捕获它。然而,正则表达式是一项要求。有没有更好的方法在Perl中捕获这一特定内容?简单地说: /\Q:(){ :|:& };:/ 现在告诉我们您真正想要实现的目标:您希望与该文本
:(){ :|:& };:
下面是我想到的
:\s*(\s*)\s*{\s*:\s*|\s*:\s*&\s*}\s*;.*:
我同意这个正则表达式有一些限制。fork-bomb命令可以很容易地更改,并且给定的正则表达式不会捕获它。然而,正则表达式是一项要求。有没有更好的方法在Perl中捕获这一特定内容?简单地说:
/\Q:(){ :|:& };:/
现在告诉我们您真正想要实现的目标:您希望与该文本匹配哪些类型的变体。如果你能用英语描述它,你就有机会得到一个正则表达式;如果不是,就不是 重点是什么?你稍微修改一下,它仍然是一个叉形炸弹,但是正则表达式不会识别它。试图用正则表达式捕获它,最终是徒劳的。不要从不受信任的来源运行shell命令。您是否正试图用正则表达式捕获上面的命令或任何fork bomb命令?如果您想捕获它以阻止它运行,我不认为这是可行的。更好的处理方法是在/etc/security/limits.conf中编辑用户/组限制。“regex是一项要求”——这是家庭作业吗?如果是这样的话,这更多的是关于您对regex元字符的理解,而不是关于提供安全性。是否已转义所有需要转义的字符?否–|分隔备选方案,{}是一个重复运算符,是一个捕获组。谢谢。我知道\Q返回以下所有反斜杠非单词字符的值。但是,如果中间有额外的空格,您的正则表达式不会捕获叉炸弹。最后,我希望创建一个正则表达式,即使函数名:不同,也能捕获给定的fork炸弹。