我正在使用Apache Thrift将小型base64编码文件移动到PHP后端(使用Apache Web服务器)。它本质上只是一个包含大量原始主体数据的HTTP POST请求。我想限制可以发布多少数据,这样我甚至不会尝试处理大于目标的文件(我也会有一个小的memory_limit)。为了测试这个,我在php.ini中设置:
post_max_size=1K
然后我确认通过运行phpinfo()
正确选择了我的设置。
然而,当将大约12K的原始文本数据发布到我的服务器时,我仍然可以使用
获取全部内容file_get_contents("php://input");
我的理解是,如果超过post_max_size而不是抛出错误或异常,PHP将简单地删除数据。通过搜索post_max_size如何工作,信息似乎总是与文件上传而不是原始帖子体相关。除了发布的文件上传数据之外,post_max_size ini设置是否实际上没有查看发布请求的原始大小?为什么当我的post_max_size被超过时,我仍然可以获得所有发布的内容吗?如果POST原始正文数据大小超出我的限制,如何阻止提供请求或处理大数据?非常感谢任何帮助。