如相应的PHP 手册条目$_POST中所述,$_FILES如果上传超出post_max_size限制,PHP 将清除。
我有一个类似下面的表单,并且我正在使用该Security组件:
echo $this->Form->create(false, array('type' => 'file', 'action' => '...'));
echo $this->Form->file('documentFile');
echo $this->Form->end('Upload');
现在,当我上传超过上述限制的大文件时,由于 CSRF 验证失败,我得到“请求已被黑洞” - 这并不奇怪,因为 PHP 清除$_POST也会删除 CSRF 保护令牌。
我可以用Security->unlockedActions它来解决这个问题,但它似乎并不理想(而且我将失去 CSRF 保护)。在这种情况下,有什么办法可以防止黑洞?
编辑:我不考虑增加post_max_size解决方案 - 它只会增加触发黑洞所需的文件大小,但不能解决核心问题。