Deployer v8 因安全性和功能问题,用新的 quote() 函数替换了 PHP 的 escapeshellarg() 函数。主要问题在于 escapeshellarg() 在非 UTF-8 语言环境中会静默删除不可打印字符,可能无警告地改变用户输入。这个已知问题已存在十多年,影响跨多个服务器的部署。
背景
PHP 的 escapeshellarg() 函数通常用于通过转义特殊字符将用户输入安全传递给 shell 命令。然而,该函数在不同语言环境中的字符编码处理存在长期问题。
- 来源
- Lobsters
- 发布时间
- 2026年5月2日 03:07
- 评分
- 7.0 / 10