/// <summary>
/// 过滤标记
/// </summary>
/// <param name="NoHTML">包括HTML,脚本,数据库关键字,特殊字符的源码 </param>
/// <returns>已经去除标记后的文字</returns>
public static string NoHTML(string Htmlstring)
{
if (Htmlstring == null)
{
return "";
}
else
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);
//删除与数据库相关的词
Htmlstring = Regex.Replace(Htmlstring, "select", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "insert", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "delete from", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "count''", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "drop table", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "truncate", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "asc", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "mid", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "char", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "exec master", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "net localgroup administrators", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "and", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "net user", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "or", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "net", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring,"*", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring,"-", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "delete", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "drop", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "script", "", RegexOptions.IgnoreCase);
//特殊的字符
Htmlstring = Htmlstring.Replace("<", "");
Htmlstring = Htmlstring.Replace(">", "");
Htmlstring = Htmlstring.Replace("*", "");
Htmlstring = Htmlstring.Replace("-", "");
Htmlstring = Htmlstring.Replace("?", "");
Htmlstring = Htmlstring.Replace(",", "");
Htmlstring = Htmlstring.Replace("/", "");
Htmlstring = Htmlstring.Replace(";", "");
Htmlstring = Htmlstring.Replace("*/", "");
Htmlstring = Htmlstring.Replace("\r\n", "");
Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
}
分享到:
相关推荐
### ASP.NET 的 SQL 防注入过滤函数大集合 #### 概述 在 Web 开发中,SQL 注入是一种常见的安全攻击方式,它利用应用程序对用户输入数据处理不当的漏洞,将恶意 SQL 代码插入到查询语句中,进而执行非法操作。为了...
"Asp.Net通用Sql防注入源码"是针对这个问题提供的一种解决方案,旨在帮助Asp.Net程序员更好地保护他们的应用程序免受SQL注入攻击。 SQL注入攻击通常发生在应用程序没有正确验证或清理用户输入时。例如,当用户在...
protected void Application_BeginRequest(object sender, EventArgs e) { //遍历Post参数,隐藏域除外 foreach (string i in this.Request.Form) { if (i == "__VIEWSTATE") continue; this.goErr(this....
本文主要针对目前ASP.NET 网站安全面临的SQL注入攻击来进行分析研究,并从客户端和服务器端两个方面来研究如何防范SQL注入攻击。
详细的介绍了防止sql注入攻击,内附asp.net 源码和vb.net源码。是初学者不错的选择。希望能够帮助到你。
在本文中,我们将深入探讨如何在ASP.NET中防止SQL注入攻击,这是一个重要的安全问题,对任何处理数据库交互的应用来说都是至关重要的。 SQL注入是黑客利用不安全的代码向数据库发送恶意SQL语句,从而获取、修改、...
ASP.NET 防止 SQL 注入攻击的方法有很多,这些方法包括参数法防注入、传统的笨一点的办法、HttpModule 实现防sql注入、SqlFilter 防止 SQL 注入、validation 防止 SQL 注入等。只有通过使用这些方法,才能有效地防止...
ASP.NET通用防注入实用版是一款针对C#编程语言和ASP.NET框架开发的安全工具,主要用于防止SQL注入等类型的攻击。SQL注入是一种常见的网络安全威胁,黑客通过输入恶意SQL代码,以欺骗服务器执行非授权的操作,获取...
System.Web.HttpContext.Current.Response.Write("<scriptLanguage=JavaScript>alert('ASP.NET(C#版)检测到非法操作\\n\\nBlog:http://hi.baidu.com/ahhacker86\\n\\nBy:aa&&JK1986');</"+"script>"); System.Web....
而HttpHandler是ASP.NET框架中的一种组件,它允许我们自定义HTTP处理程序来处理特定类型的请求,这为实现SQL注入防护提供了可能性。 首先,理解SQL注入的基本原理是至关重要的。攻击者通常通过在表单字段中输入恶意...
ASP.NET过滤类SqlFilter的目的是防止SQL注入攻击,这是一种常见的网络安全威胁。SQL注入允许恶意用户通过输入特殊构造的参数,使得后台系统执行非预期的SQL命令,从而可能获取敏感数据或破坏数据库。例如,如果一个...
标题提到的"简单的asp.net登陆有一定的sql防注入功能",意味着这个示例将展示一种基础的方法来防止SQL注入攻击。在ASP.NET中,通常我们会使用参数化查询或存储过程来避免这种情况,但在这个例子中,它可能通过一个...
针对这一问题,《史上最全的.NET防止SQL注入攻击的替换文本》提供了一系列策略和方法,尤其聚焦于如何在.NET框架下通过字符串处理来防御SQL注入。 ### SQL注入攻击原理 SQL注入攻击主要是利用应用程序对用户输入...
在ASP.NET和C#环境中,如果你的代码没有正确地处理用户输入,就可能导致SQL注入。例如,如果你直接将用户输入的数据拼接到SQL查询语句中,攻击者可以构造特殊的输入,使得查询执行非预期的操作,如读取、修改或删除...
这个"ASP.NET防SQL注入脚本程序"显然是为了帮助开发者防止这种攻击而设计的。 SQL注入是黑客利用输入字段向应用程序的SQL查询中插入恶意代码,从而控制或操纵数据库的一种手段。例如,如果一个登录页面没有正确验证...
这个压缩包提供的源码是针对ASP.NET应用的通用防SQL注入漏洞程序,通过Global.asax文件来实现。 SQL注入是一种常见的网络安全攻击手段,攻击者通过输入恶意的SQL代码,试图获取、修改或删除数据库中的敏感信息。在...
ASP.NET (VB.NET) 防SQL注入脚本程序是一个重要的安全工具,旨在保护Web应用程序免受SQL注入攻击。SQL注入是一种常见的网络安全威胁,黑客通过输入恶意SQL代码来操纵数据库,获取敏感信息或破坏系统。在ASP.NET (VB...
一、什么是SQL注入式攻击? SQL注入式攻击就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,...
在ASP.NET中,防止SQL注入是确保应用程序安全性的重要环节。SQL注入是一种常见的网络安全威胁,攻击者通过输入恶意的SQL代码,试图获取未经授权的数据访问或控制数据库服务器。 **SQL注入的原理** SQL注入攻击主要...
ASP.NET 是一种强大的 web 应用程序开发框架,然而,如同其他基于数据库的应用程序,它也可能面临 SQL 注入式攻击的威胁。SQL 注入是一种利用恶意 SQL 代码篡改正常查询,以获取未授权访问、数据泄露或破坏数据库的...