Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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
编译C++;使用PHP实现二进制_Php_C++_Compilation - Fatal编程技术网

编译C++;使用PHP实现二进制

编译C++;使用PHP实现二进制,php,c++,compilation,Php,C++,Compilation,我有一个用户想要下载的程序。与其提供下载链接,让他们下载程序并输入信息,不如让我的PHP脚本来完成。 我的网站需要用户名和密码才能登录,有一个用户可以下载文件的私人页面。当用户进入“下载”页面时,页面上有用户必须选择的特定选项。选择选项并单击“下载”后,我希望PHP转到我的程序源代码,在源代码中添加缺少的数据,将其编译成.exe,并将其返回给用户。 问题是,我不知道该怎么做,我担心PHP会把一个用户的信息放进去,然后不小心把一个用户的信息给其他人。 如何使每个二进制文件都不同? 我目前

我有一个用户想要下载的程序。与其提供下载链接,让他们下载程序并输入信息,不如让我的PHP脚本来完成。

我的网站需要用户名和密码才能登录,有一个用户可以下载文件的私人页面。当用户进入“下载”页面时,页面上有用户必须选择的特定选项。选择选项并单击“下载”后,我希望PHP转到我的程序源代码,在源代码中添加缺少的数据,将其编译成.exe,并将其返回给用户。

问题是,我不知道该怎么做,我担心PHP会把一个用户的信息放进去,然后不小心把一个用户的信息给其他人。

如何使每个二进制文件都不同?


我目前正在Windows中制作程序(使用Code::Blocks),但我将在Linux或FreeBSD服务器上托管这些文件。我只是想说出来,万一有什么我需要知道的。

既然你实际上允许用户在你的服务器上输入任意代码,这似乎是一个严重的安全风险。为什么需要定制可执行文件?可能是配置文件吗

如果你想继续做这件事,可以很容易地做到。也许使用像Mustache这样的模板引擎(不是C++语言特征模板)。编写源文件以包含此胡子模板

当用户发布了信息后,您只需要运行命令来应用模板以获得完成的源代码,然后运行makefile以生成完成的可执行文件。然后你可以像其他任何东西一样给它


如果您想确保用户不能获得相同的二进制文件,一种简单的方法是在每次运行后删除完成的可执行文件。有更好的方法可以做到这一点,但这很容易。

从安全角度看,这听起来很危险。你确定根据网站上的用户输入更新源代码是个好主意吗?即使只是一次性下载,这似乎不是为应用程序设置用户首选项的好方法。使用exec()调用编译器,或者更好地重新构造可执行文件,以便用户数据是独立的(例如作为dll)@calvinf,这不是更新我的源代码,我控制程序和源代码。出于安全原因,谢谢。我知道这一点,这就是为什么它不像文本打开文件。这只是一个下拉列表,他们必须选择它。其余的信息(比如用户是谁和他们的选择)将由PHP注入到文件中。