【问题标题】:PHP: Return all user-defined functionsPHP:返回所有用户定义的函数
【发布时间】:2013-12-07 23:27:01
【问题描述】:

我有 PHP shell,我希望用户能够直接调用函数。我搞定了。但后来我发现用户甚至可以调用 unlink 等预定义函数。我认为这是一个安全漏洞,所以我想将可调用函数限制为仅我定义的函数,例如:调用 unlink 不起作用。

【问题讨论】:

标签: php shell


【解决方案1】:

您可以通过

获取定义函数列表
get_defined_functions();

它将返回一个带有用户定义和内部函数的关联数组。您可以使用该信息来决定函数是用户定义的还是内部的。 (manual)

【讨论】:

  • 他将如何限制非用户函数被php执行?
  • 只有在我知道他的密码时才能说。看起来 OP 需要包装函数调用
  • 他的代码无关紧要。他正在使用php,例如PHP 外壳。
  • 你的意思是php -a?我没有在问题中看到此信息
  • 是的。问题是“我有 PHP shell”。
【解决方案2】:

您可以使用disable_functions INI 设置(在您的 php.ini 文件中)禁用功能。

例如:

disable_functions=unlink,fopen,file_get_contents [and so on...]

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 2021-09-28
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多