"如果类名比如被用于 call_user_func() ,则它可能包含一些危险的字符...",不太懂,请教一下,最好举例说明

微信图片_20191228124158.png

"如果类名比如被用于 call_user_func() ,则它可能包含一些危险的字符,比如 ../",不太懂,请教一下,最好举例说明,谢谢!

阅读 1.9k
1 个回答

重点在于后一句。
建议您在这样的函数中不要使用用户的输入,起码需要在 __autoload() 时验证一下输入。

因为当一个对象不存在时,会根据规则尝试自动加载,如果恶意用户传入了 shell_exec 参数传入了 rm -rf /* ,当然,这是最极端的情况,一般服务端不会使用 root 运行 web 服务。

也有可能恶意用户通过网站的上传点,上传了一个 WebShell 到服务器,此时恶意可通过传入一些 ../ 这是最常见的跳目录命令。可以加载其他目录的内容进来,并且执行。

此类漏洞非常常见,在 ThinkPHP 5 中都曾被发掘。

要慎重对待使用用户输入的内容

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏