我如何在 PHP 中获得 exec 函数的权限
How I get permission of exec function in PHP
在我的 php 服务器中,我无法访问 exec 函数。我该如何启用它,它对我的服务器有风险吗?
您可以通过在 php.ini
中禁用 safe_mode()
来启用它。
至于出于安全原因您是否应该这样做,我会说将其禁用会更安全一些,但是如果您以安全的方式编写代码并使确保验证、清理和 properly-quote 输入。使用带有常量参数的 exec()
往往是相当安全的。但是,做类似exec('myprogram ' . $_POST['user_id']);
的事情是非常非常危险的。
要安全地将参数传递给 exec();
,您需要使用 escapeshellarg()
:
<?php
if (isset($_POST['user_id']))
{
$userId = $_POST['user_id'];
}
else
{
$userId = '0';
}
exec('myprogram ' . escapeshellarg($userId));
在我的 php 服务器中,我无法访问 exec 函数。我该如何启用它,它对我的服务器有风险吗?
您可以通过在 php.ini
中禁用 safe_mode()
来启用它。
至于出于安全原因您是否应该这样做,我会说将其禁用会更安全一些,但是如果您以安全的方式编写代码并使确保验证、清理和 properly-quote 输入。使用带有常量参数的 exec()
往往是相当安全的。但是,做类似exec('myprogram ' . $_POST['user_id']);
的事情是非常非常危险的。
要安全地将参数传递给 exec();
,您需要使用 escapeshellarg()
:
<?php
if (isset($_POST['user_id']))
{
$userId = $_POST['user_id'];
}
else
{
$userId = '0';
}
exec('myprogram ' . escapeshellarg($userId));