首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP shell输入消毒

PHP shell输入消毒
EN

Stack Overflow用户
提问于 2015-06-02 10:30:34
回答 1查看 261关注 0票数 1

我要输入字母数字字符串(sha1 - git提交ID)。使用regexp /[^a-z0-9]/进行消毒,使用带空字符串的preg_replace是否足以安全地将其传递给shell?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-02 18:02:32

你走在正确的轨道上。您可以使用[^0-9a-f]而不是[^0-9a-z]来防止某人传递非十六进制字符。

代码语言:javascript
复制
$arg = preg_replace('/[^0-9a-f]/', '', $arg);
if (strlen($arg) === 40) {
    // We have a SHA-1 hash
    shell_exec("git checkout {$arg}");
}

在一般情况下,escapeshellarg()是您想要使用的,但是为您的特定用例进一步缩小它也是一个好主意。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30593580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档