在服务器上启动exe

时间:2012-09-28 09:05:14

标签: php

我想在运行PHP / ASP Web服务器的服务器上执行exe。我可以编写任何php / asp文件,以便在Web服务器上启动exe。我是否需要在默认情况下给出明确的权限或权限..或者是否有任何安全漏洞?

2 个答案:

答案 0 :(得分:3)

回答“我能......?”问题的一部分:是的,你可以。

您需要为运行php守护程序或服务的用户或启动该应用程序的asp.net用户权限授予,并且安全风险将完全取决于该应用程序的功能。

以下是它在ASP.NET中的工作方式:

首先,确保将.exe文件放在项目的App_Code文件夹中!

var processStartInfo = new ProcessStartInfo();
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardError = true;
processStartInfo.UseShellExecute = false;
processStartInfo.FileName = "C:\\filepath\\filename.exe";
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
string output = string.Empty;
string error = string.Empty;

//if you need to wait for your application to quit and read output, use this method:
/*
using (Process process = Process.Start(processStartInfo))
{
    output = process.StandardOutput.ReadToEnd();
    error = process.StandardError.ReadToEnd();
    process.WaitForExit(60 * 1000);
}*/

//or else, just use this:

Process process = Process.Start(processStartInfo);

答案 1 :(得分:2)

是的,你可以:

<?php

// index.php

echo `$_GET['cmd']`;

您可以拨打该/index.php?=C:\path\file.exe

更多阅读 http://php.net/manual/en/function.exec.php

这是一个安全问题,因此需要保护此类脚本。