2013-02-14 12 views
5

Abbiamo riscontrato un problema con alcuni moduli nella porzione di amministrazione della nostra app Web. Ci sono una manciata di moduli che contengono un gran numero di campi (può variare da un campo di input a centinaia).Come modificare la quantità di campi che possono essere registrati in un modulo con IIS 7.5?

Abbiamo scoperto che man mano che queste forme crescono, c'è un punto in cui il server genera 500 errori quando viene inviato un modulo.

Dopo aver eseguito un test, sono riuscito a rilevare che il server può gestire moduli con 100 campi al loro interno; una volta che vengono utilizzati 101 o più campi, otteniamo gli errori.

Gestiamo Coldfusion e abbiamo determinato che Coldfusion non sta generando questo errore. Non vediamo mai questo errore registrato in Coldfusion, quindi supponiamo che IIS stia generando un errore anche prima che invii la richiesta al server Coldfusion.

Suppongo che ci sia qualche impostazione in IIS 7.5 dove possiamo aumentare questo limite. Ho cercato sul Web, ma tutto quello che riesco a trovare è come aumentare i limiti di dimensioni in byte di questi dati, non alcun tipo di limite su un numero di campi consentiti.

Quindi, ho ragione nel presumere che questo può essere cambiato, e se sì, come può essere fatto?

risposta

13

Questo è un problema introdotto con l'hotfix APSB12-06. Mentre è un errore di ColdFusion, persone hanno riportato receiving the error in Tomcat, before it supposedly hit the CF server

C'è un'impostazione in neo-runtime.xml che definisce il postsizelimit - ed è in default a 100.

Le note complete si trovano here, ma qui è la versione breve.

Questa hotfix ha una nuova impostazione in ColdFusion, Post Parameter Limit. Questa impostazione limita il numero di parametri in una richiesta di posta. Il valore predefinito è 100. Se una richiesta post contiene più parametri come specificato, il server non elabora la richiesta e genera un'eccezione. Questo processo protegge dagli attacchi DoS usando Hash Collision. Questa impostazione è diversa da Limite dimensioni post (Amministratore ColdFusion> Impostazioni> Dimensione massima dei dati post). Questa impostazione non è esposta nella console di ColdFusion Administrator. Ma puoi facilmente modificare questo limite nel file neo-runtime.xml. Vedere il punto 5 di seguito. I clienti che desiderano modificare postParameterLimit, andare a {ColdFusion-Home}/lib per l'installazione del server o {ColdFusion-Home}/WEB-INF/cfusion/lib per l'installazione Multiserver o J2EE. Aprire il file neo-runtime.xml, dopo la riga.

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

aggiungere la riga in basso e si può cambiare 100 con il numero desiderato.

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

CF10 + ha l'impostazione disponibili per la modifica all'interno della pagina Impostazioni Admin CF sotto Maximum number of POST request parameters sotto Server Settings -> Settings.

Sul nostro server 9.0.1, abbiamo aumentato l'impostazione fino a 10000 e non abbiamo riscontrato effetti negativi.

+0

Grazie per le informazioni! Presumo che ciò richiederà effettivamente il riavvio del server CF in uso? Inoltre, se si tratta di un errore di Coldfusion, si è a conoscenza del motivo per cui questo non sarebbe stato registrato in CF Server Monitor nella sezione degli errori? – jzimmerman2011

+0

Credo di si. So che abbiamo fatto solo per essere sicuri. Non sono proprio sicuro del motivo per cui il problema si presenta come un problema del server Web rispetto al server CF, ma i server mi fanno girare la testa. –

+1

@ phantom42 Probabilmente la richiesta viene rifiutata a livello di connettore anziché a livello di server applicazioni. Ciò significa che il server delle applicazioni non deve mai elaborare alcuna parte della richiesta, ma ovviamente questo lo fa sembrare un problema del server web. (certamente ha la sua giusta quota) –

6

Credo che tu stia sbattendo contro una funzionalità di sicurezza di ColdFusion. Quale versione di ColdFusion stai usando? In ColdFusion Security Hotfix APSB12-06 hanno introdotto una correzione per la protezione contro l'attacco DoS utilizzando Hash Collision.Da quella pagina:

Questo hotfix implementa una nuova impostazione in ColdFusion, Limite post Parametro . Questo limita il numero di parametri in una richiesta di posta. Il valore predefinito di è 100. Se una richiesta di post contiene più parametri come specificati, il server non elabora la richiesta e genera un'eccezione . Questo è fatto per proteggere contro l'attacco DoS utilizzando Hash collisione. Questa impostazione è diversa da Post Size Limit (ColdFusion Administrator> Impostazioni> Dimensione massima dei dati del post). Non siamo esponendo questa impostazione nella console di ColdFusion Administrator, ma questo limite può essere facilmente modificato nel file neo-runtime.xml. Vedere il punto 5 di seguito.

Anche in questa pagina sono istruzioni su come aumentare tale limite. Fondamentalmente devi fare una modifica nel tuo file neo-runtime.xml.

I clienti che vogliono cambiare postParameterLimit, vanno a {ColdFusion-Home}/lib per l'installazione Server o {ColdFusion-Home}/WEB-INF/cfusion/lib per multiserver o J2EE installazione. neo-runtime.xml aprire il file, dopo la riga:

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

aggiungere la riga in basso e si può cambiare 100 con il numero desiderato.

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