传递超过 8000 Post 个参数会引发错误

Passing more than 8000 Post parameters throws error

我正在开发一个模块,该模块需要提交包含大量参数 (8k-10k) 的表单。我不确定这是否是个好主意。但事情就是这样。我已经更改了 neo-runtime.xml 文件中的设置,如 this link 中所述:

<var name='postParametersLimit'><number>10000.0</number></var>

重新启动了服务器 。但是没有用。 CF 仍然抛出错误 500。我们看不到任何可靠的信息。我正在研究 CF9.0.2,我们正在使用 IIS 7.5。有什么需要我做的吗?

首先从 CF​​ 服务器限制开始。这篇博客 post 应该会为您提供可以调整限制的位置:

http://www.cutterscrossing.com/index.cfm/2012/3/27/ColdFusion-Security-Hotfix-and-Big-Forms

"We gave our client a dynamic form where he can add his own form fields and now we have this problem. There was a mismatch between clients expectations and our thinking of the way client wants it."

不幸的是,您将不得不告诉客户他们不能按照他们想要的方式拥有它。出于安全原因,post 处理限制存在,如果您将其提高得太高,那么您将重新打开服务器以 [​​=10=]。

我们的工作流程系统中有数以万计的表格,并与银行和政府客户合作。一旦应用此更新(首先在开发中),我们必须将默认值提高到某个值并坚持下去。我们确保将此限制注意到整个业务团队,并将其添加到我们的编码标准文档中,以确保所有新开发都按照标准进行。在修改了一些现有表格以解决该限制后,我们能够毫无问题地将安全更新推送到生产环境。

只要告诉他们单个表单中的字段数量有安全限制,他们不能越过那条线。如果您需要收集那么多数据,他们将不得不将其分解成多种形式。

您可以使用 cfgrid 而不是使用包含大量数据的长表单来获取用户的输入。 cfgrid 允许您仅从数据库加载有限数量的数据。 使用它可以防止一次发布和加载大量数据。

如果您不是 cfgridcfajax 功能的大力支持者,您仍然可以使用分页或类似的东西,这将允许您在表单中加载有限数量的数据进而减少数据发布。但是后面就需要你自己搭建逻辑了。