如何将带有文本的表单作为流发布到PHP以避免浏览器发布限制?
Web浏览器对可以发布多少数据(字符)以防止攻击有限制。IE大约有2000个字符,Chrome大约有65000个字符 我试图发布一个表单,它有一个包含200000多个字符的字段(确切地说,是一个向量的json) 这是任何浏览器都不允许的,因此接收帖子的PHP页面只能看到大约40%的数据 我能想到的解决这个问题的唯一方法是流式处理表单post,以便PHP可以增量地接收它 这是否可能与$raw=file\u get\u contents('php://input'); 例如,与“应用程序/八位字节流”的表单编码类型结合使用 非常感谢,,如何将带有文本的表单作为流发布到PHP以避免浏览器发布限制?,php,post,browser,stream,limit,Php,Post,Browser,Stream,Limit,Web浏览器对可以发布多少数据(字符)以防止攻击有限制。IE大约有2000个字符,Chrome大约有65000个字符 我试图发布一个表单,它有一个包含200000多个字符的字段(确切地说,是一个向量的json) 这是任何浏览器都不允许的,因此接收帖子的PHP页面只能看到大约40%的数据 我能想到的解决这个问题的唯一方法是流式处理表单post,以便PHP可以增量地接收它 这是否可能与$raw=file\u get\u contents('php://input'); 例如,与“应用程序/八位字节流
Seb如果您在Linux或类似系统下使用PHP,您可以使用
.htaccess
控制这些,如下所示:
#set max post size
php_value post_max_size 50M
希望这将允许您发送更多数据,而不是搞乱编码
请求的url部分(GET和POST)可以受
浏览器和服务器-通常安全大小为2KB,因为
几乎没有浏览器或服务器使用更小的限制
请求(POST)的主体通常受到服务器的限制
字节大小基础,以防止一种类型的DoS攻击(注意
这意味着字符转义可以增加正文的字节大小)。
最常见的服务器设置是10MB,尽管所有流行的服务器都是10MB
允许通过设置文件或面板增加或减少该值
你混淆了URL长度限制和上传限制。通过URL传递的数据是一个
GET
查询,每个浏览器的长度都有限制
如果需要传递任意“大”数据,则使用POST,它没有任意的客户端长度限制,只受服务器配置的限制。确定-找到问题所在。数据在到达Apache之前经过WAF过滤器。这是在运行mod_security,其post限制为64Kb。post的唯一限制是服务器/php限制-想想文件上载我的post_max_大小设置为100M。有趣的是,如果我使用Fiddler(www.fiddler2.com)检查POST请求,似乎所有数据都在发送。但如果我真的要归档,就要获取内容php://input”),只打印了一半的数据。对于大型文本帖子,还有其他缓冲区/限制需要注意吗?据我所知,我不这么认为,但让我来研究一下,并尝试找出答案