Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Perl中用于捕获Fork-bomb命令的正则表达式_Regex_Perl_Bash_Shell - Fatal编程技术网

Regex 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:(){ :|:& };:/ 现在告诉我们您真正想要实现的目标:您希望与该文本

我试图用Perl编写一个正则表达式来捕获以下fork-bomb命令:

:(){ :|:& };:
下面是我想到的

:\s*(\s*)\s*{\s*:\s*|\s*:\s*&\s*}\s*;.*:
我同意这个正则表达式有一些限制。fork-bomb命令可以很容易地更改,并且给定的正则表达式不会捕获它。然而,正则表达式是一项要求。有没有更好的方法在Perl中捕获这一特定内容?

简单地说:

/\Q:(){ :|:& };:/

现在告诉我们您真正想要实现的目标:您希望与该文本匹配哪些类型的变体。如果你能用英语描述它,你就有机会得到一个正则表达式;如果不是,就不是

重点是什么?你稍微修改一下,它仍然是一个叉形炸弹,但是正则表达式不会识别它。试图用正则表达式捕获它,最终是徒劳的。不要从不受信任的来源运行shell命令。您是否正试图用正则表达式捕获上面的命令或任何fork bomb命令?如果您想捕获它以阻止它运行,我不认为这是可行的。更好的处理方法是在/etc/security/limits.conf中编辑用户/组限制。“regex是一项要求”——这是家庭作业吗?如果是这样的话,这更多的是关于您对regex元字符的理解,而不是关于提供安全性。是否已转义所有需要转义的字符?否–|分隔备选方案,{}是一个重复运算符,是一个捕获组。谢谢。我知道\Q返回以下所有反斜杠非单词字符的值。但是,如果中间有额外的空格,您的正则表达式不会捕获叉炸弹。最后,我希望创建一个正则表达式,即使函数名:不同,也能捕获给定的fork炸弹。