如何安全地将数据从C传输到Perl?

时间:2015-08-19 21:17:25

标签: c perl variables

假设我有一个perl程序,例如:

my $c = "MyDataToCProg";
open my $h, '-|', 'myCProg', "$c";
my @result = <$h>;
close $h;
print "Result: " . $result[0] . "\n";

现在,myCProg是一个用gcc编译的程序。 C程序的输出将是一个printf语句,最终会出现在perl程序的$ result [0]变量中。

有没有比用printf打印更好的方法从C程序中提取输出?例如,任何人都可以运行'myCProg&#39;从命令行也看到输出。我希望输出只能在perl程序中看到,如果有人在命令行运行该程序,则无法查看。

任何人都知道怎么做?

抱歉,我没有方便的C程序,但任何有printf语句的东西(甚至是简单的Hello World)都会参与(可能是打印&#34; Hello [yourname]&#34;适用于这个例子。

1 个答案:

答案 0 :(得分:0)

您可以加密通信。您可以通过fd 3进行通信。您可以创建一个套接字并让C程序连接到该套接字。但无论你做什么,其他任何人都可以做到。

想到的唯一解决方案涉及文件权限:删除访问C程序的功能,并使Perl程序成为其所有者可以访问C程序的set-uid脚本。详细说明,

  1. 创建用户以拥有此应用程序。我们称之为myProg
  2. chown myProg myCProg myPerlProg
  3. chmod 700 myCProg
  4. chmod 4755 myPerlProg