小编Zil*_*ilk的帖子

从文件中读取正则表达式是否安全?

假设一个允许用户在配置文件中指定多个文本过滤器表达式的Perl脚本,是否有一种安全的方法让他们也可以输入正则表达式,而不会出现意外的副作用或代码执行?没有实际解析正则表达式并检查它们是否有问题的结构,那就是.不会有任何替代,只有匹配.

顺便说一句,有没有办法在实际使用它之前测试指定的正则表达式是否有效?如果/foo (bar/输入了类似的内容,我想发出警告.

谢谢,Z.


编辑:
谢谢你非常有趣的答案.我已经发现,如果使用了use re 'eval'pragma ,下面的危险结构只会在regex中进行评估:

(?{code})
(??{code})
${code}
@{code}
Run Code Online (Sandbox Code Playgroud)

默认是no re 'eval'; 因此,除非我遗漏了某些内容,否则从文件中读取正则表达式应该是安全的,唯一的检查是Axeman发布的eval/catch.至少我在测试中无法隐藏任何邪恶内容.

再次感谢.Z.

regex security perl

12
推荐指数
4
解决办法
1148
查看次数

标签 统计

perl ×1

regex ×1

security ×1