Enrique,
A partir del FW 4.0 se hicieron algunos cambios para que todos los inputs de un POST con Content-Type "application/x-www-form-urlencoded" fallen si contienen caracteres especiales que podrían derivar en un ataque de Cross Side Scripting.
Esto es una medida por parte del ASP.NET para que los desarrolladores entiendan el riesgo, sean advertidos que podrían llegar a estar ante una situación de vulnerabilidad y tomen las acciones necesarias.
Una vez que el desarrollador toma las medidas necesarias en el código, debe indicarle al ASP.NET que esa página o método no debe validar el input. Es decir, es como un contrato en donde el desarrollador declara intencionalmente de que ese input no debe ser validado pues o es validado después por el programador o realmente se necesita recibir un HTML real.
En GeneXus todos los inputs son validados. Es decir, todos los inputs son "Encodeados" antes de ser mandados al browser, por lo cual no hay manera de hacer Cross Side Scripting, al menos que se especifique un campo Text Format:HTML.
En resumen, la excepción del ASP.NET que se lanza es de advertencia y no quiere decir que se esté haciendo algo de manera incorrecta. ASP.NET no tiene manera de darse cuenta que el servidor luego tomará esos inputs y los "sanitizará" de contenido inadecuado, que es lo que hace GeneXus para cada campo del Form.
Lo que si quedaría de nuestro lado es agregar en el web.config el tag <httpRuntime requestValidationMode="2.0" /> cuando se detecta un AppPool con FW4.0 para evitar estos inconvenientes, pues efectivamente todos los chequeos necesarios por parte de las aplicaciones son realizados.
Saludos.
---------- Forwarded message ----------
From: Enrique Almeida <ealmeida@concepto.com.uy>
Date: Thu, Dec 8, 2011 at 12:00 PM
Subject: Re: [xev2] ERROR: A potentially dangerous Request.Form value was detected from the client -- .NET 4.0 y validaciones de entrada.
To: xev2@gxtech.com.uy
si, me quedo claro. Gracias por responder.
On Thu, Dec 8, 2011 at 11:59 AM, Luciano Topolniak <topolniak@hotmail.com> wrote:
Isso eu não sei lhe responder. No meu caso, uso o .net 3.5 sp1 nos dois ambientes.
[]'s
Luciano Topolniak
Analista de Sistemas
From: ealmeida@concepto.com.uy
Date: Thu, 8 Dec 2011 11:56:03 -0200
To: xev2@gxtech.com.uy
Subject: Re: [xev2] ERROR: A potentially dangerous Request.Form value was detected from the client -- .NET 4.0 y validaciones de entrada.
Si, el problema solo se da si tenes en ejecucion el framework 4.0.
La duda que me surge, es que si se ejecuta con el frameworks anteriores, podemos estar teniendo riesgos de seguridad dificiles de controlar. Por eso me gustaria tener claro si hay forma de evitar el error, aun ejecutando con framework 4.0.
Enrique
On Wed, Dec 7, 2011 at 2:51 PM, Luciano Topolniak <topolniak@hotmail.com> wrote:
Eu coloquei a mesma versão nos dois casos, compilei com 3.5 e setei o 3.5 no servidor....filet.
[]'s
Luciano Topolniak
Analista de Sistemas
From: ealmeida@concepto.com.uy
Date: Wed, 7 Dec 2011 14:46:12 -0200
To: xev2@gxtech.com.uy
Subject: Re: [xev2] ERROR: A potentially dangerous Request.Form value was detected from the client -- .NET 4.0 y validaciones de entrada.
Luciano:
Si, el problema se da cuando ejecuta con 4.0, pues es una validacion en Runtime.
Como lo solucionaste?
Enrique
On Wed, Dec 7, 2011 at 2:31 PM, Luciano Topolniak <topolniak@hotmail.com> wrote:
Eu tive esse problema, mas o meu caso era o seguinte: Compilei a aplicação em .net 3.5 e no servidor estava rodando o 4.0.
[]'s
Luciano Topolniak
Analista de Sistemas
From: ealmeida@concepto.com.uy
Date: Wed, 7 Dec 2011 14:21:33 -0200
To: xev2@gxtech.com.uy
Subject: [xev2] ERROR: A potentially dangerous Request.Form value was detected from the client -- .NET 4.0 y validaciones de entrada.
Tengo una Kb en Ev2 NB 50918, .NET con framework 4.0. En la misma, tengo una transaccion con campos HTML y el fckeditor.
Cuando quiero ejecutar la web transaction en un IIS con un Application Pool que tiene el framework 4.0, da el error:
A potentially dangerous Request.Form value was detected from the client (GXState="...TCAMBIO":"<p>\n\tDOCUMENTACION...").
Si agrego al web.config <httpRuntime requestValidationMode="2.0" /> en la seccion <system.web> o ejecuto con el Framework 2.0 el error no aparece.
Mis preguntas:
1) Artech puede hacer algun cambio en la validacion o en el encoding de la entrada para que este error no aparezca?
2) Puedo hacer algo en mis programas para que no aparezca dicho error, sin modificar el web.config?
Como esta es una validacion agregada en las ultimas versiones, supongo que es importante que mi aplicacion la realice, y no veo conveniente que no se realice.
Enrique Almeida
Concepto
Error completo
Server Error in '/MTADCRNET' Application.
A potentially dangerous Request.Form value was detected from the client (GXState="...TCAMBIO":"<p>\n\tDOCUMENTACION...").
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. To allow pages to override application request validation settings, set the requestValidationMode attribute in the httpRuntime configuration section to requestValidationMode="2.0". Example: <httpRuntime requestValidationMode="2.0" />. After setting this value, you can then disable request validation by setting validateRequest="false" in the Page directive or in the <pages> configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case. For more information, see http://go.microsoft.com/fwlink/?LinkId=153133.
Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (GXState="...TCAMBIO":"<p>\n\tDOCUMENTACION...").
Source Error:
|
Stack Trace:
[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (GXState="...TCAMBIO":"<p>\n\tDOCUMENTACION...").] System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +8855748 System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +122 System.Web.HttpRequest.get_Form() +150 GeneXus.Http.HttpAjaxContext.LoadFormVars(HttpContext localHttpContext) +113 GeneXus.Http.GXHttpHandler.InitPrivates() +159 GeneXus.Http.GXHttpHandler.ProcessRequest(HttpContext httpContext) +157 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 |
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.237
0 Response to "RE: [xev2] ERROR: A potentially dangerous Request.Form value was detected from the client -- .NET 4.0 y validaciones de entrada."
Publicar un comentario