2013-02-14 1 views
5

Wir haben ein Problem mit einigen Formularen im Admin-Bereich unserer Web-App. Es gibt eine Handvoll Formulare, die eine große Anzahl von Feldern enthalten (sie kann irgendwo von einem Eingabefeld bis zu den Hunderten reichen).Wie ändert man die Anzahl der Felder, die in einem Formular mit IIS 7.5 gebucht werden können?

Wir haben festgestellt, dass, wenn diese Formulare wachsen, es einen Punkt gibt, an dem der Server 500 Fehler wirft, wenn ein Formular veröffentlicht wird.

Nach dem Ausführen eines Tests konnte ich feststellen, dass der Server Formulare mit 100 Felder in ihnen verarbeiten kann; Sobald 101 oder mehr Felder verwendet werden, erhalten wir die Fehler.

Wir führen Coldfusion aus, und wir haben festgestellt, dass Coldfusion diesen Fehler nicht verursacht. Dieser Fehler wird in Coldfusion nicht angezeigt. Daher gehen wir davon aus, dass IIS bereits einen Fehler anzeigt, bevor die Anforderung an den Coldfusion-Server gesendet wird.

Ich gehe davon aus, dass es in IIS 7.5 einige Einstellungen gibt, wo wir diese Grenze überschreiten können. Ich habe im Internet gesucht, aber alles, was ich finden kann, ist, wie die Grenzen der Byte-Größe dieser Daten zu erhöhen, nicht irgendeine Art von Begrenzung für eine Anzahl von Feldern, die erlaubt sind.

Also, bin ich richtig in der Annahme, dass dies geändert werden kann, und wenn ja, wie kann es getan werden?

Antwort

13

Dies ist ein Problem, das mit Hotfix APSB12-06 eingeführt wurde. Zwar ist es ein Coldfusion Fehler ist, haben die Menschen receiving the error in Tomcat, before it supposedly hit the CF server berichtet

Es gibt eine Einstellung in neo-runtime.xml ist, die die postsizelimit definiert - und bis 100.

Die vollständigen Noten befinden sich here Verzug geraten ist, aber hier ist die kurze Version.

Dieser Hotfix hat eine neue Einstellung in ColdFusion, Post Parameter Limit. Diese Einstellung begrenzt die Anzahl der Parameter in einer Postanforderung. Der Standardwert ist 100. Wenn eine Postanforderung mehr Parameter wie angegeben enthält, verarbeitet der Server die Anforderung nicht und löst eine Ausnahme aus. Dieser Prozess schützt vor DoS-Angriffen mit Hash Collision. Diese Einstellung unterscheidet sich von der Postgrößenbeschränkung (ColdFusion Administrator> Einstellungen> Maximale Größe der Postdaten). Diese Einstellung ist in der ColdFusion-Administratorkonsole nicht verfügbar. Sie können dieses Limit jedoch problemlos in der Datei neo-runtime.xml ändern. Siehe unten, Punkt 5. Kunden, die postParameterLimit ändern möchten, wechseln Sie zu {ColdFusion-Home}/lib für die Serverinstallation oder {ColdFusion-Home}/WEB-INF/cfusion/lib für die Multiserver- oder J2EE-Installation. Öffnen Sie die Datei neo-runtime.xml nach Zeile.

<var name='postSizeLimit'><number>100.0</number></var> 

Fügen Sie die Zeile unten und Sie können 100 mit der gewünschten Nummer ändern.

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

CF10 + hat die Einstellung unter Maximum number of POST request parameters unter Server Settings -> Settings im CF Admin-Einstellungen Seite zu bearbeiten.

Auf unserem 9.0.1 Server haben wir nur die Einstellung auf 10000 erhöht und haben keine negativen Auswirkungen gesehen.

+0

Danke für die Info! Ich nehme an, dass dies einen Neustart des CF-Servers erfordert, um tatsächlich verwendet zu werden? Wenn dies der Fall ist, wenn Coldfusion den Fehler auslöst, wüssten Sie, warum dies nicht im CF Server Monitor im Fehlerbereich protokolliert wurde? – jzimmerman2011

+0

Ich glaube schon. Ich weiß, wir haben es nur getan, um sicher zu sein. Ich bin nicht wirklich sicher, warum das Problem als ein Webserver-Problem im Vergleich zu CF-Server erscheint, aber Server machen meinen Kopf in den Wind. –

+1

@ phantom42 Die Anforderung wird wahrscheinlich auf der Connector-Ebene und nicht auf der Ebene des Anwendungsservers zurückgewiesen. Dies bedeutet, dass der Anwendungsserver niemals irgendeinen Teil der Anfrage verarbeiten muss, aber dies sieht offensichtlich wie ein Webserverproblem aus. (Ich habe sicherlich seinen gerechten Anteil) –

6

Ich glaube, Sie stossen auf eine Sicherheitsfunktion von ColdFusion. Welche ColdFusion-Version verwenden Sie? In ColdFusion Security Hotfix APSB12-06 wurde ein Fix zum Schutz gegen DoS-Angriffe mit Hash Collision eingeführt.Von dieser Seite:

Dieser Hotfix implementiert eine neue Einstellung in ColdFusion, Postparameter Limit. Dies begrenzt die Anzahl der Parameter in einer Post-Anfrage. Der Standardwert ist 100. Wenn eine Postanforderung mehr Parameter wie angegeben enthält, verarbeitet der Server die Anforderung nicht und löst eine Ausnahme aus. Dies wird getan, um gegen DoS-Angriff mit Hash Kollision zu schützen. Diese Einstellung unterscheidet sich von der Postgrößenbeschränkung (ColdFusion Administrator> Einstellungen> Maximale Größe der Postdaten). Wir sind nicht ausgesetzt diese Einstellung in ColdFusion Administrator-Konsole, aber diese Grenze kann leicht in neo-runtime.xml-Datei geändert werden. Siehe Punkt 5 unten.

Auch auf dieser Seite sind Anweisungen, wie man dieses Limit erhöht. Grundsätzlich müssen Sie Ihre neo-runtime.xml-Datei ändern.

Kunden, die postParameterLimit ändern möchten, gehen Sie zu {ColdFusion-Home}/lib für Server-Installation oder {ColdFusion-Home}/WEB-INF/cfusion/lib für Multiserver oder J2EE Installation. Öffnen Sie die Datei neo-runtime.xml, nach Zeile:

Fügen Sie die folgende Zeile hinzu und Sie können 100 mit der gewünschten Nummer ändern.

<var name='postParametersLimit'><number>100.0</number></var> 
Verwandte Themen