重点在于后一句。建议您在这样的函数中不要使用用户的输入,起码需要在 __autoload() 时验证一下输入。 因为当一个对象不存在时,会根据规则尝试自动加载,如果恶意用户传入了 shell_exec 参数传入了 rm -rf /* ,当然,这是最极端的情况,一般服务端不会使用 root 运行 web 服务。 也有可能恶意用户通过网站的上传点,上传了一个 WebShell 到服务器,此时恶意可通过传入一些 ../ 这是最常见的跳目录命令。可以加载其他目录的内容进来,并且执行。 此类漏洞非常常见,在 ThinkPHP 5 中都曾被发掘。 ThinkPHP 5.1框架结合RCE漏洞的深入分析 - FreeBuf互联网安全新媒体平台 要慎重对待使用用户输入的内容
重点在于后一句。
建议您在这样的函数中不要使用用户的输入,起码需要在 __autoload() 时验证一下输入。
因为当一个对象不存在时,会根据规则尝试自动加载,如果恶意用户传入了
shell_exec
参数传入了rm -rf /*
,当然,这是最极端的情况,一般服务端不会使用 root 运行 web 服务。也有可能恶意用户通过网站的上传点,上传了一个 WebShell 到服务器,此时恶意可通过传入一些
../
这是最常见的跳目录命令。可以加载其他目录的内容进来,并且执行。此类漏洞非常常见,在 ThinkPHP 5 中都曾被发掘。
要慎重对待使用用户输入的内容