如相应的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
解决方案 - 它只会增加触发黑洞所需的文件大小,但不能解决核心问题。