gpt4 book ai didi

perl - Perl/e 修饰符的安全问题

转载 作者:行者123 更新时间:2023-12-04 17:31:17 25 4
gpt4 key购买 nike

假设我有一个 Perl 脚本,其中包含一个替换命令,该命令将替换字符串作为位置参数并使用 /e修饰符:

perl -pe 's/abc/$ARGV[0]/ge;'

这种方法是否存在任何安全问题?我的意思是是否可以给出这样的位置参数值,它会导致 perl 执行不需要的功能?我的意思是类似的: perl -pe 's/abc//;unlink ("/tmp/file");' .

最佳答案

不像 /ee , /e 没有固有风险因为它不调用 Perl 解析器。它只是导致源文件中的代码被评估,就像 map BLOCK LIST 一样。和 for (LIST) BLOCK评估他们的BLOCK .

注意

s{$foo}{$bar}g

只是简写
s{$foo}{ qq{$bar} }eg

所以如果你没问题
perl -pe's/abc/$ARGV[0]/g'

那你没问题
perl -pe's/abc/"$ARGV[0]"/eg'

和几乎相同的
perl -pe's/abc/$ARGV[0]/eg'

关于perl - Perl/e 修饰符的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44894603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com