<p dir="ltr"><br>
 Thanks for the Response Kevin.</p>
<p dir="ltr">Let me Explain the scenario which is giving intervention while implementing ESAPI. Filter in our Web based Application.</p>
<p dir="ltr">Please find the Attached document for the steps which we are following For implementing ESAPI in business App..<br></p>
<p dir="ltr">The getQueryString() method of SecurityWrapperRequest.java is invoked 3 times for each request. Also the queryString is getting emptied when it finds invalid character inside queryString.</p>
<p dir="ltr">For example:<br>
When the Url is <a href="http://localhost:9081/w0094553/execute.do?nextPageId=testSearch">http://localhost:9081/w0094553/execute.do?nextPageId=testSearch</a>, the new page is loaded successfully. But when the URL is <a href="http://localhost:9089/w0094553/execute.do?nextPageId=testSearch&next=abc">http://localhost:9089/w0094553/execute.do?nextPageId=testSearch&next=abc</a>, the same page is loaded again and not navigated to new page. This is happening due to the queryString is getting removed because of the canonicalization of “ne”.</p>

<p dir="ltr">Also tried with URL <a href="http://localhost:9081/w0094553/launchTest.redirect?nextPageId=testSearch">http://localhost:9081/w0094553/launchTest.redirect?nextPageId=testSearch</a>≠xt=abc and found blank page with NoSuchElementException in console.</p>

<p dir="ltr">Rootcause for the Issue.In HtmlEntityCodec.class Line 278 for the Method :mkCharacterToEntityMap()</p>
<p dir="ltr">Line 510 : map.put((char)8800, "ne"); /* not equal to */ which is responsible for adding ≠ while Canonicalize the querystring.<br>
So the validation fails and we are unable to redirect to any of the pages.<br>
 Since We are implementing ESAPI as a filter .we cant make canonicalize as false. By default canonicalize as true and we cannot invoke the any other methods.<br>
Please provide your inputs to get rid of the issue.<br></p>
<p dir="ltr">The Reason we are implementing ESAPI is for  avoiding  cross site scripting issues for any of the request.<br></p>
<p dir="ltr">Bhuvaneshwaran T l NTT DATA Global delivery services l state farm l v.8814-3907l ph: 8197158977 l <a href="mailto:bhuvaneshwaran.thangaraj@nttdata.com">bhuvaneshwaran.thangaraj@nttdata.com</a> <br>
>  <br>
> ________________________________<br>
> From: Bhuvanesh Waran [<a href="mailto:bhuvanesht177@gmail.com">bhuvanesht177@gmail.com</a>]<br>
> Sent: Friday, July 25, 2014 9:40 AM<br>
> To: Thangaraj, Bhuvaneshwaran<br>
> Subject: Fwd: Re: Regex Validator.HTTPParameterValue which would allow Xml<br>
><br>
> ---------- Forwarded message ----------<br>
> From: "Kevin W. Wall" <<a href="mailto:kevin.w.wall@gmail.com">kevin.w.wall@gmail.com</a>><br>
> Date: 25 Jul 2014 09:25<br>
> Subject: Re: Regex Validator.HTTPParameterValue which would allow Xml<br>
> To: "Bhuvanesh Waran" <<a href="mailto:bhuvanesht177@gmail.com">bhuvanesht177@gmail.com</a>><br>
> Cc: <br>
><br>
> If you are just trying to get rid of the canonicalization, call one of the other<br>
> getValidInput() methods that allows you to disable canonicalization; e.g., this<br>
> <<a href="http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Validator.html#getValidInput%28java.lang.String,%20java.lang.String,%20java.lang.String,%20int,%20boolean,%20boolean%29">http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Validator.html#getValidInput%28java.lang.String,%20java.lang.String,%20java.lang.String,%20int,%20boolean,%20boolean%29</a>><br>

> or this:<br>
> <<a href="http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Validator.html#getValidInput%28java.lang.String,%20java.lang.String,%20java.lang.String,%20int,%20boolean,%20boolean,%20org.owasp.esapi.ValidationErrorList%29">http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Validator.html#getValidInput%28java.lang.String,%20java.lang.String,%20java.lang.String,%20int,%20boolean,%20boolean,%20org.owasp.esapi.ValidationErrorList%29</a>><br>

><br>
> and set the boolean canonicalization flag to false.<br>
><br>
> -kevin<br>
><br>
> On Thu, Jul 24, 2014 at 10:49 AM, Bhuvanesh Waran<br>
> <<a href="mailto:bhuvanesht177@gmail.com">bhuvanesht177@gmail.com</a>> wrote:<br>
> > Thanks for the immediate Response Kevin .<br>
> ><br>
> ><br>
> > My querystring value is<br>
> > =currentPage=clientSearch&nextPage=clientSideRedirect<br>
> ><br>
> > String testValue1 ="currentPage=clientSearch&next";<br>
> > try {<br>
> >     result =ESAPI.validator().getValidInput("HTTPQueryString " + testValue1,<br>
> > testValue1, "HTTPQueryString", 4000, true);<br>
> >     System.out.println(result);<br>
> >     }<br>
> ><br>
> ><br>
> ><br>
> ><br>
> > Value before canonicalizing:<br>
> > currentPage=clientSearch&nextPage=clientSideRedirect Value after<br>
> > canonicalizing: currentPage=clientSearch≠xtPage=clientSideRedirect<br>
> ><br>
> > So my validation fails in ESAPI for querystring.<br>
> ><br>
> > My regex for querystring<br>
> > :Validator.HTTPQueryString=^[a-zA-Z0-9\\-=\\*\\.\\?;,+\\/:&_ %]*$.<br>
> ><br>
> > How to get rid of this canonicalizing. Thanks in advance.<br>
> ><br>
> ><br>
> ><br>
> > On Thu, Jul 17, 2014 at 11:08 AM, Kevin W. Wall <<a href="mailto:kevin.w.wall@gmail.com">kevin.w.wall@gmail.com</a>><br>
> > wrote:<br>
> >><br>
> >> Well, I'm pretty sure that<br>
> >><br>
> >>     .*<br>
> >><br>
> >> would parse it! :)  Seriously, if you are looking for something to only<br>
> >> parse<br>
> >> this particular XML string, just use a string match. You don't tell us<br>
> >> which<br>
> >> part of this XML will remain constant (e.g., are all the tags required).<br>
> >><br>
> >> Furthermore, this is something more suitable for using with XML schema<br>
> >> validation rather than a simple regex. Chances are that regex would<br>
> >> be brittle, probably subject to XDOS attacks, and would be so complex<br>
> >> that chances of getting it right are between slim to none. So write<br>
> >> yourself<br>
> >> a XSD and do schema validation. That's what it's meant for.<br>
> >><br>
> >> -kevin<br>
> >><br>
> >> On Tue, Jul 15, 2014 at 4:04 AM, Bhuvanesh Waran<br>
> >> <<a href="mailto:bhuvanesht177@gmail.com">bhuvanesht177@gmail.com</a>> wrote:<br>
> >> > Hi All,<br>
> >> ><br>
> >> > I'm trying to modify the <b>validator.httpParamterValue</b> which is<br>
> >> > having<br>
> >> > the value as<br>
> >> > Validator.HTTPParameterValue=^[\\p{L}\\p{N}.\\-/+=_ !$*?@:%]{0,1000}$.<br>
> >> ><br>
> >> > I'm, unable to parse the xml input :<br>
> >> > <dataXML><CreateUpdateClient<br>
> >> ><br>
> >> > version='1.0'><commonInput></commonInput><client><clientId>JLTF53SR00C</clientId><roleType>Individual</roleType><names><name<br>
> >> ><br>
> >> > prodAssoc=''><nameType>Individual</nameType><prefixes>ADM</prefixes><firstName><![CDATA[dasd]]></firstName><middleName><![CDATA[asda]]></middleName><lastName><![CDATA[sdad]]></lastName><suffixes>SR</suffixes><unstructuredName><![CDATA[DDS]]></unstructuredName><action>add</action></name></names></client></CreateUpdateClient><CCreateUpdateClntandRelations1Rsp><messages<br>

> >> ><br>
> >> > rc='0'/><clients><client><clientId>JLTF53SR00C</clientId><nameID>00010</nameID></client></clients></CCreateUpdateClntandRelations1Rsp></dataXML>.<br>

> >> ><br>
> >> ><br>
> >> > Please provide me a regex which would pass the entire input xml for<br>
> >> > HttpParamter value.<br>
> >> ><br>
> >> ><br>
> >><br>
> >><br>
> >><br>
> >> --<br>
> >> Blog: <a href="http://off-the-wall-security.blogspot.com/">http://off-the-wall-security.blogspot.com/</a><br>
> >> NSA: All your crypto bit are belong to us.<br>
> ><br>
> ><br>
><br>
><br>
><br>
> --<br>
> Blog: <a href="http://off-the-wall-security.blogspot.com/">http://off-the-wall-security.blogspot.com/</a><br>
> NSA: All your cry</p>