实例代码:可以有效防止sql注入

编程之家收集整理的这篇文章主要介绍了实例代码:可以有效防止sql注入编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

  编程之家 jb51.cc:我们先来看一段代码

  /// <summary>
/// 移除字符串中的可能引起危险sql字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string RemovesqlUnsafeString(string str)
{
string p = @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']";
return Regex.Replace(str,p,"");
}
/// <summary>
/// 检测是否有sql危险字符
/// </summary>
/// <param name="str">要判断字符串</param>
/// <returns>判断结果</returns>
public static bool IsSafesqlString(string str)
{

return !Regex.IsMatch(str,@"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']");
}

/// <summary>
/// 替换sql语句中的有问题符号
/// </summary>
public static string Chksql(string str)
{
string str2;

if (str == null)
{
str2 = "";
}
else
{
str = str.Replace("'","''");
str2 = str;
}
return str2;
}
#region 过滤攻击性字符
/// <summary>
/// 过滤攻击性字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ReplaceBadChar(string str)
{
if (!string.IsNullOrEmpty(str))
{
str = Regex.Replace(str,@"(?s)/*.*?*/","",RegexOptions.IgnoreCase); //删除注释:/* */
str = Regex.Replace(str,@"(?s)<script.*?>.*?</script>",RegexOptions.IgnoreCase); //删除脚本
str = Regex.Replace(str,@"(?s)<style.*?>.*?</style>",RegexOptions.IgnoreCase);
//需要把用户自己添加的样式都删除
//<link href="/scripts/PopBox/stylesheets/Styles.css" rel="stylesheet" type="text/css" />
str = Regex.Replace(str,@"(?s)<link[^>]+href+([^>]+?)>",RegexOptions.IgnoreCase);

//替换一些比较特殊的字符
// str = str.Replace("&nbsp;"," "); //将&nbsp;替换为一个空格
str = str.Replace("&mdash;","-");//将&mdash;替换为-
str = str.Replace("&rdquo;","”");
str = str.Replace("&ldquo;","“");
str = str.Replace("&le;","<=");
str = str.Replace("&ne;","!=");
str = str.Replace("&ge;",">=");

//<img src="" onerror="" /> <([^>|^<]+?on)([w]+[^=]+?)=([^>]+?)>
str = Regex.Replace(str,@"<([^>|^<]+?on)([a-z|A-Z]+[^=]+?)=([^>]+?)>",
"<$1_$2=$3>",RegexOptions.IgnoreCase);//过滤可能的XSS攻击,脚本事件

//javascript:
str = str.Replace("javascript:","javascript:");//过滤<img src="javascript:alert(/xss/)" />

str = str.Replace("vbscrript:","vbscript:");//过滤vbscript

str = str.Replace("script","script");//过滤所有可能的脚本 liehuo.net

//style="XSS:expression(alert(/xss/))"
str = str.Replace("expression","Expression");//过滤所有可能的脚本
//str=Regex.Replace(str,@"(style(.*))=(.*)(expression)","$1=$3",
RegexOptions.IgnoreCase); //过滤样式中,可能带有的脚本事件
//<iframe src=


str = Regex.Replace(str,"(?s)<iframe.*?>.*?</iframe>",
RegexOptions.IgnoreCase);//过滤Ifrmae;网

//防止转码XSS攻击:<img src="&#106&#97&#118&#97&#115&#99&#114&#105&#112&#116&#58&#97
&#108&#101&#114&#116&#40&#39&#88&#83&#83&#39&#41&#59">
str = str.Replace("#","#");//过滤#
// str = str.Replace("&","&");//过滤&
str = str.Replace("%","%");//过滤%

//<img STYLE="background-image: 75726c286a61766173
63726970743a616c6572742827585353272929">
str = str.Replace("","/");//过滤 防止连接16进制的攻击

if (str.IndexOf("<script") >= 0)
str = str.Replace("<","&lt;--script");

if (str.IndexOf("'") > 0)
str = str.Replace("'","’");

//str = str.Replace("<","&lt;");
//str = str.Replace(">","&gt;");

}
return str;
}
#endregion

总结

以上是编程之家为你收集整理的实例代码:可以有效防止sql注入全部内容,希望文章能够帮你解决实例代码:可以有效防止sql注入所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

相关文章

猜你在找的MsSQL相关文章

目录问题描述:排查方法:(一)首先是要检查SQLServer数据库服务器中是否允许远程链接。其具体操作为:(二)为微软SQL服务器(MSSQLServer)配置相应协议。(三)检查SQL服务器防火墙设置 (快捷步骤-直接关闭防火墙(不安全))问题描述:新安装的SqlServer数据。无法使用ip地址进行连接,只能通过windows方式登录。排查方法:(一)首先是要检查SQLServer数据库服务器中是否允许远程链接。其具体操作为:(1)打开数据库,用本地帐户登录,右击
sqlserver08R2 sqlserver2012R2下载路径,在本文末尾,已共享到百度网盘。有需要可下载。两个版本的安装方式完全一样。1、打开安装包,点击setup.exe,默认是管理员用户安装,如果setup.exe上没有管理员图标,请右键setup.exe,选择以管理员身份运行。2、安装3、选择"全新安装或向现有安装添加功能"。4、检测完成点击确定。5、选择版本和密钥,然后下一步。(博主上传的安装包里,自带秘钥。)6、选择“我接受许可条款”。点击下一.
介绍如何在 Microsoft SQL Server 中生成连续的数字、字符或者时间序列值,包括使用系统视图 master.dbo.spt_values 、使用通用表表达式以及自定义的表值函数 generate_series 生成各种数据序列。
讨论如何在 Microsoft SQL Server 中实现一个只能存储一行数据的表,介绍了基于计算列创建唯一约束的实现方法。使用 MERGE 插入和更新数据,同时为了防止数据被删除,通过触发器禁止删除操作。
本文详细介绍了 Microsoft SQL Server 数据库的体系结构以及各个组件的功能。包括整体结构,协议层中的TCP/IP协议、共享内存协议、命名管道协议以及TDS协议、关系引擎中的命令解析器、查询优化器、查询执行器,存储引擎中的访问方法、缓冲管理器、事务管理器,数据文件以及日志文件。
本文介绍了如何利用 Microsoft SQL Server 中的 CASE 表达、len、left、right、stuff、concat 等字符串函数实现信息的隐藏,也就是将其中部分内容显示为星号(*)。具体案例包括姓名、手机号、身份证号以及银行卡号等个人敏感信息的保护。
元数据 (metadata) 最常见的定义为'有关数据的结构数据',或者再简单一点就是'关于数据的信息',日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS)
1、在安装上和SQL Server 2005比较上更加丰富的选项设置. 2、SQL Server 2008的新特性FILESTREAM ,可以在安装时配置,也可以在安装后启用。3、两个小工具调整。