请教.net安全性的问题,及SQL的注入攻击的防范

陶庆 2009-03-16 11:09:16
问题如题,,
最近本人的站点一直有被他人进行SQL注入方式的攻击现象,
请教大家有什么好的方法来对此现象进行制止!!
请教了。。
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Flyear 2009-03-18
  • 打赏
  • 举报
回复
我Blog上的连接地址: http://www.cnblogs.com/Flyear/archive/2009/03/18/1415395.html
Flyear 2009-03-18
  • 打赏
  • 举报
回复
第一种方法:
1.所有传入的Sql参数统统都用SqlParameter来写.

第二种方法
1.对所有要传入的参数做Sql关键字符过滤.

用法:

string strSql = "select * from UserInfo where UID = {0}";
strSql = FormatSql(strSql,tbUID.Text);

/// <summary>
/// Sql语句过滤处理类
/// </summary>
public static class SqlFilter
{
/// <summary>
/// 过滤Sql注入的字符
/// </summary>
/// <param name="sqlCondition">要过滤的Sql数据</param>
/// <returns></returns>
public static string FilterInjection(string sqlCondition)
{
if (sqlCondition.Trim() != string.Empty)
sqlCondition = sqlCondition.Trim();
sqlCondition = sqlCondition.Replace("''", "");
sqlCondition = sqlCondition.Replace("'", "''");
sqlCondition = sqlCondition.Replace("_", @"\_");
sqlCondition = sqlCondition.Replace("%", @"\%");

return sqlCondition;
}

public static string AddEsCape(string strSql, string sqlCondition)
{
string m_ReturnSql = string.Empty;
if (sqlCondition.Contains(@"\%") || sqlCondition.Contains(@"\_"))
{
m_ReturnSql = string.Format(strSql, sqlCondition) + @" escape '\' ";
}
else
{
m_ReturnSql = string.Format(strSql, sqlCondition);
}
return m_ReturnSql;
}

public static string FormatSql(string strSql, string sqlCondition)
{
string m_Condition = FilterInjection(sqlCondition);
if (string.IsNullOrEmpty(m_Condition))
{
return string.Empty;
}
else
{
return AddEsCape(strSql, m_Condition);
}
}
}
春天的气息 2009-03-17
  • 打赏
  • 举报
回复
sql权限,
语句过滤
传递参数



------------------------------------------
欢迎加入我的程序设计QQ群80532706哟
请注册bbs.bbs180.com,并写清把ID号,然后加入群,
huang_net 2009-03-17
  • 打赏
  • 举报
回复
sqlparameter做登陆,就可以避免攻击!!!
陶庆 2009-03-17
  • 打赏
  • 举报
回复
谢谢大家了。。。
chenjianyong94 2009-03-16
  • 打赏
  • 举报
回复
直接调用存储过程。不写sql语句。

13,192

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧