如何将带有文本的表单作为流发布到 PHP 以避免浏览器发布限制



Web浏览器对可以发布的数据(字符)数量有限制,以防止攻击。在IE中,它大约有2000个字符,在Chrome中大约有65,000个字符。

我正在尝试发布一个表单,该表单的字段包含 200,000+ 个字符(准确地说是 json 强大的向量)。

这比任何浏览器都允许的要多得多,因此接收帖子的PHP页面只能看到大约40%的数据。

我能想到解决这个问题的唯一方法是流式传输表单帖子,以便 PHP 可以增量接收它。

是否可能与$raw = file_get_contents('php://input');例如,与"application/octet-stream"的形式编码类型结合使用?

非常感谢,塞布

如果你在 Linux 或类似版本下使用 PHP,你可以使用 .htaccess 来控制这些,如下所示:

#set max post size
php_value post_max_size 50M

希望这将允许您发送更多数据,而不是弄乱编码。

请求的 url 部分(GET 和 POST)可以受到 浏览器和服务器 - 通常安全大小为 2KB,因为有 几乎没有使用较小限制的浏览器或服务器。

请求正文 (POST) 通常*受服务器上的服务器限制 字节大小基础,以防止某种类型的 DoS 攻击(请注意 这意味着字符转义可以增加正文的字节大小)。 最常见的服务器设置是10MB,尽管所有流行的服务器 允许通过设置文件或面板增加或减少此值。

您将网址长度限制与上传限制混淆了。通过 URL 传递的数据是一个GET查询,并且每个浏览器都有长度限制。

如果需要传递任意"大型"数据,则可以使用 POST,它没有任意客户端长度限制,仅受服务器配置的限制。

好的 - 找到了问题所在。数据在到达 Apache 之前通过 WAF 过滤器传输。这是正在运行的mod_security,其后置限制为 64Kb。

相关内容

  • 没有找到相关文章

最新更新