Dynamically generated HTML pages can introduce security risks if input received from Web clients is not validated either when it is received from a client or when it is transmitted back to a client. Malicious script that is embedded in input submitted to a Web site and later written back out to a client can appear to be originating from a trusted source. This security risk is referred to as a cross-site scripting attack. You should always validate data that is received from a client when it will be transmitted from your site to client browsers.
Moreover, whenever you write out as HTML any data that was received as input, you should encode it using a technique such as HttpServerUtility.HtmlEncode(string) or HttpServerUtility.UrlEncode(string) to prevent malicious script from executing. This technique is useful for data that was not validated when it was received.
When you encode or filter data, you must specify a character set for your Web pages so that your filter can identify and remove any byte sequences that do not belong to that set (such as nonalphanumeric sequences) and could potentially have malicious script embedded in them.
For more information about cross-site scripting attacks, see article Q252985, "How to Prevent Cross-Site Scripting Security Issues" on the tp://go.microsoft.com/fwlink/?LinkID=37115 Web site.