php - PHP 执行安全吗?

标签 php security exec

我正在尝试让 exec 在 Windows 服务器上工作并收到错误消息“unable to fork”。在谷歌搜索了一下这个问题之后,似乎推荐的修复方法是授予 IUSR 帐户对 c:\Windows\System32\cmd.exe 的读取和执行权限。

但这一定是一个主要的安全漏洞吧?安全吗?是否有另一种方法来执行 [从 php] 驻留在服务器上的 exe?

最佳答案

它需要执行 cmd.exe 因为当 Windows PHP 看到这个时:

exec("foo -bar -baz");

它调用这个:

cmd /c foo -bar -baz

如果您让用户输入参数,这只是一个安全漏洞。 I.E.,你不应该这样做:

// DO NOT DO THIS!
exec("foo -bar=" . $_GET['bar']);

相反,您应该使用 escapeshellarg 清理您的参数.

// This is okay.  (Be sure foo.exe can handle unexpected input!)
exec("foo -bar=" . escapeshellarg($_GET['bar']));

关于php - PHP 执行安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1295346/

相关文章:

ruby-on-rails - 开发难度为 "levels"的 RoR 应用程序

PHP AJAX登录,这种方法安全吗?

java - mvn执行:java fails with FileNotFoundException

javascript - PayPal checkout.js - 获取付款 ID 和付款人 ID

PHP:允许用户发布带有特定标签的帖子

PHP、PDO 和 MySQL - HTML 输入类型日期到 MySql DATE

c++ - fork exec 和 mmap 问题

php - 如果声明不起作用

asp.net-mvc - SimpleMembershipProvider

php - 在返回垃圾的 php 中执行 exec ('php -v' 时出错(HTTP 响应)