您绝对应该向您的托管公司询问具体信息。里面有很多不相关的说法。
“缓冲区溢出”和“资源问题”是完全不同的事情。缓冲区溢出表明您将导致 perl 或 mod_perl 或 httpd 本身崩溃。如果是这种情况,那么这些组件之一中存在错误,他们应该引用有问题的错误并提供他们何时应用安全更新的时间表。这样的错误肯定会导致 Bugtraq。
另一方面,资源问题是完全不同的事情。如果我在我的 POST 中向您发送许多兆字节,那么我可以吃掉任意数量的内存。这可以通过在 httpd.conf 中配置 LimitRequestBody 指令来解决。默认为无限制。这必须由托管服务提供商设置。
他们说发生核心转储时,可以在服务器上运行任意脚本(存储为输入字段文本的一部分),这可能会危及站点。他们说这不是他们可以在他们的 Apache/Perl 配置中保护的东西——由 Perl 脚本通过限制发布字段中的字符数来防止这种情况。但似乎核心转储可能会在脚本限制字段大小之前发生。
同样,如果这是在 httpd(或)中创建核心转储mod_perl
,那么它表示 httpd(或mod_perl
)中的错误。Perl 的动态和垃圾回收内存管理原则上不受缓冲区溢出或坏指针的影响。这并不是说 perl 本身的错误不会导致这种情况,只是 perl 语言本身不具备以这种方式导致核心转储所需的语言特性。
当您的脚本可以访问数据时,要阻止此处描述的任何事情都为时已晚。您的脚本当然有其自身的安全问题,并且有很多方法可以诱骗 perl 脚本运行任意命令。没有太多方法可以让它们以这里描述的方式跳转到任意内存位置。