Perl 禁用 shell 访问

标签 perl shell

某些内置函数如 systemexec(以及反引号)将使用 shell(我认为默认情况下为 sh)包含 shell 元字符的单个参数。如果我想编写一个避免对底层 shell 做出任何假设的可移植程序,是否有 pragma 或其他一些选项我可以用来禁用 shell 访问或立即触发 fatal error ?

最佳答案

我在 Mastering Perl 中广泛地写了这个.简短的回答是在列表形式中使用 system

system '/path/to/command', @args;

这不会解释 @args 中的任何特殊字符。

同时,您应该启用污点检查以帮助在将不良数据传递给系统之前将其捕获。查看perlsec有关详细信息的文档。

关于Perl 禁用 shell 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725298/

相关文章:

perl - 对 perl 数组使用像 grep 和 sed 这样的 unix 命令

java - 用 Java 解密 Blowfish/CBC

c++ - 在windows上的ubuntu中执行.sh文件

linux - Bash 脚本正则表达式

perl - 在perl dancer2 MVC框架中将html文件作为路由传递

perl - 如何模拟 Moo 角色中定义的方法?

perl - 如何增加一个 PERL 脚本的网关超时?

linux - 比较 shell 脚本和 delta 中的文件

linux - 单个命令查找文件、压缩并移动到不同位置、删除原始文件

linux - 使用 shell 脚本的 grep ifconfig 输出