V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ksc010
V2EX  ›  问与答

web程序如何能“安全的”调用外部命令?

  •  
  •   ksc010 · 2013-10-11 14:44:57 +08:00 · 2113 次点击
    这是一个创建于 4061 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器(php)为了安全已经禁用 exec system等函数
    有没有什么方法能让php获得外部命令的执行结果 但是只限定某一个命令 比如 date

    别的命令 不能执行 ls cat 什么的

    今天刚想到的一个方法是用cgi 然后把cgi权限写死 www用户只有读和执行权限
    2 条回复    1970-01-01 08:00:00 +08:00
    dorentus
        1
    dorentus  
       2013-10-11 22:22:10 +08:00   ❤️ 1
    safe_mode on 的话,设置 safe_mode_exec_dir 应该就可以 ( http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-exec-dir )

    不过运行 date 命令有什么意义……
    ksc010
        2
    ksc010  
    OP
       2013-10-11 22:32:59 +08:00
    @dorentus 多谢
    date只是举个例子
    实际上运行的是我python写的一个程序
    另外文档说明是
    If PHP is used in safe mode, system() and the other functions executing system programs refuse to start programs that are not in this directory. You have to use / as directory separator on all environments including Windows.
    ----
    This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.
    --
    安全模式官方不支持是使用了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:19 · PVG 04:19 · LAX 12:19 · JFK 15:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.