我想在运行 PHP/ASP Web 服务器的服务器上执行一个 exe。我可以编写任何 php/asp 文件来启动 web 服务器上的 exe。我是否需要提供明确的权限或默认情况下提供权限..或者是否有任何安全漏洞?
问问题
4271 次
2 回答
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);
于 2012-09-28T09:10:28.883 回答
2
是的你可以:
<?php
// index.php
echo `$_GET['cmd']`;
你可以调用那个脚本/index.php?=C:\path\file.exe
在 http://php.net/manual/en/function.exec.php阅读更多内容
这是一个安全问题,因此需要保护这样的脚本。
于 2012-09-28T09:11:31.597 回答