我想在运行PHP / ASP Web服务器的服务器上执行exe。我可以编写任何php / asp文件,以便在Web服务器上启动exe。我是否需要在默认情况下给出明确的权限或权限..或者是否有任何安全漏洞?
答案 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
这是一个安全问题,因此需要保护此类脚本。