php - 出于安全原因,Codeigniter escapeshellarg() 已被禁用

标签 php codeigniter

有没有办法重写codeigniter的Upload.php库因为我一直面对

escapeshellarg() has been disabled for security reasons

我已经尝试过 this thread 中的解决方案将 @ 放在 escapeshellarg 前面,但仍然无法上传我的图片,那就是忽略警告。

我已尝试联系我的托管服务提供商的管理员,但出于安全原因他们无法启用它。

我可以做些什么来欺骗它以便我可以上传图片吗?

最佳答案

您可以制作自己的escapeshellarg,这是一个非常简单的函数,它只转义给定字符串中的任何单引号,然后在其周围添加单引号。

function my_escapeshellarg($input)
{
  $input = str_replace('\'', '\\\'', $input);

  return '\''.$input.'\'';
}

但是,如果您的提供商禁用了 Upload.php 所需的其他功能,那么您终究可能会倒霉。

您可以通过创建一个包含调用 phpinfo() 的简单 .php 文件来查找哪些功能被禁用。 (在生成的输出中搜索 disable_functions)

关于php - 出于安全原因,Codeigniter escapeshellarg() 已被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095339/

相关文章:

php - Laravel SSL 读取操作超时 | swift _IoException | PHP错误?

php - 如何在 Laravel 中显示断言错误?

Php.ini 生产与开发

.htaccess - 在Codeigniter的所有航线

php - 通过过滤器从多个数据库中选择

PHP Mktime 错误

php - php请求结束时是否释放所有内存?

php - 如何使用 codeigniter 在数据库中提交多行表格数据?

javascript - Ajax 和 json_encode 在 Firefox 中回显文本而不是 json

php - 我应该在哪里初始化 CodeIgniter 中的 Forge 类并使用 create_database 函数?