Bar*_*art 11 php security exec
我试图让exec在Windows服务器上工作并收到错误消息"无法分叉".在谷歌搜索了一下之后,似乎推荐的修复方法是将IUSR帐户的READ和EXECUTE权限授予c:\ Windows\System32\cmd.exe.
但那已成为一个重要的安全漏洞吗?安全吗?还有另一种方法来执行[来自php]一个驻留在服务器上的exe吗?
Mif*_*Fox 15
它需要执行cmd.exe,因为当Windows PHP看到这个:
exec("foo -bar -baz");
Run Code Online (Sandbox Code Playgroud)
它称之为:
cmd /c foo -bar -baz
Run Code Online (Sandbox Code Playgroud)
如果您让用户输入参数,这只是一个安全漏洞.IE,你不应该这样做:
// DO NOT DO THIS!
exec("foo -bar=" . $_GET['bar']);
Run Code Online (Sandbox Code Playgroud)
相反,您应该使用escapeshellarg清理参数.
// This is okay. (Be sure foo.exe can handle unexpected input!)
exec("foo -bar=" . escapeshellarg($_GET['bar']));
Run Code Online (Sandbox Code Playgroud)