求助.net防注入代码

H79469992 2009-01-04 08:22:47
网站经常被注入,请问谁有实用点的防注入代码呢?.NET和SQLSERVER数据库的,本人不懂,望哪位朋友指点下我啊,万分感谢啊,我都愁死了
...全文
1496 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
Emm..... 2010-04-26
  • 打赏
  • 举报
回复
学习学习~~~~~~
小广龙 2010-03-31
  • 打赏
  • 举报
回复
16楼的我感觉比较全面的
小曦子 2009-01-05
  • 打赏
  • 举报
回复
学习了...
flashlove2008 2009-01-05
  • 打赏
  • 举报
回复
1:UI层过滤
2:DAL数据层过滤
3:全站(GLOABEL)
g1y9d861213 2009-01-05
  • 打赏
  • 举报
回复
UP
zhxhdean 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 qq196260188 的回复:]
C# codeusing System;

namespace web.comm
{
/**//// <summary>
/// ProcessRequest 的摘要说明。
/// </summary>
public class ProcessRequest
{
public ProcessRequest()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

SQL注入式攻击代码分析#region SQL注入式攻击代码分析
/**//// <summary>
//…
[/Quote]
好东西,收藏了
y165448805 2009-01-05
  • 打赏
  • 举报
回复
学习来了
pb_stu 2009-01-05
  • 打赏
  • 举报
回复
传参和替换敏感字符
rascalwm 2009-01-05
  • 打赏
  • 举报
回复
sql语句不要用拼接字符串 用传参的方式
例如
select name from stuInfo where stuId=@id
用这种形式
ysj52zqq 2009-01-05
  • 打赏
  • 举报
回复
url 伪地址
sql语句 用存储过程
sun_Ke 2009-01-05
  • 打赏
  • 举报
回复
SQL语句不要用拼接的方式,用传参数的方式
wwwhhb4002 2009-01-05
  • 打赏
  • 举报
回复

学习
wormwormwormworm 2009-01-05
  • 打赏
  • 举报
回复
推荐使用Parameter
zhangzhicong 2009-01-05
  • 打赏
  • 举报
回复
1。建议使用sqlhelper.cs,配合使用参数。
2。尽可能使用储存过程。
3。输入验证,不要让用户随意乱输入。
4。页面访问时验证是否已经是合法用户,是否有权限。
NqIceCoffee 2009-01-05
  • 打赏
  • 举报
回复
1.推荐使用Parameter

2.如果要自己来做这件事,只需要做两步:1)如果是数字类型,则判断其是否为数字

2)如果是字符串,则替换一个单引号为两个单引号
mchaojie1 2009-01-05
  • 打赏
  • 举报
回复
用Parameters方法最好。这方面的资料多的很。
glt3260053 2009-01-05
  • 打赏
  • 举报
回复
1.查看和修改等的权限分离
2.过滤所有用户输入
3.把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令
4.用存储过程来执行所有的查询
5.完善用户输入的的长度和类型等验证
6.检查用户输入的合法性
7.将用户登录名称、密码等数据加密保存
蜗牛水里爬 2009-01-05
  • 打赏
  • 举报
回复
好好看看DBhelp去
传参
传参传参传参传参
哪还有人写三层不用传参的啊~~~
qq196260188 2009-01-04
  • 打赏
  • 举报
回复
using System;

namespace web.comm
{
/**//// <summary>
/// ProcessRequest 的摘要说明。
/// </summary>
public class ProcessRequest
{
public ProcessRequest()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

SQL注入式攻击代码分析#region SQL注入式攻击代码分析
/**//// <summary>
/// 处理用户提交的请求
/// </summary>
public static void StartProcessRequest()
{

// System.Web.HttpContext.Current.Response.Write("<script>alert('dddd');</script>");
try
{
string getkeys = "";
//string sqlErrorPage = System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString();
if (System.Web.HttpContext.Current.Request.QueryString != null)
{

for(int i=0;i<System.Web.HttpContext.Current.Request.QueryString.Count;i++)
{
getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys],0))
{
//System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>");
System.Web.HttpContext.Current.Response.End();
}
}
}
if (System.Web.HttpContext.Current.Request.Form != null)
{
for(int i=0;i<System.Web.HttpContext.Current.Request.Form.Count;i++)
{
getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys],1))
{
//System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
System.Web.HttpContext.Current.Response.Write("<script>alert('请勿非法提交!');history.back();</script>");
System.Web.HttpContext.Current.Response.End();
}
}
}
}
catch
{
// 错误处理: 处理用户提交信息!
}
}
/**//// <summary>
/// 分析用户请求是否正常
/// </summary>
/// <param name="Str">传入用户提交数据</param>
/// <returns>返回是否含有SQL注入式攻击代码</returns>
private static bool ProcessSqlStr(string Str,int type)
{
string SqlStr;

if(type == 1)
SqlStr = "exec |insert |select |delete |update |count |chr |mid |master |truncate |char |declare ";
else
SqlStr = "'|and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare";

bool ReturnValue = true;
try
{
if (Str != "")
{
string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.IndexOf(ss)>=0)
{
ReturnValue = false;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
#endregion


}
}
hanyucq123 2009-01-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 H79469992 的回复:]
if (Request.Form.Count > 0)
{
string s1 = Request.ServerVariables["SERVER_NAME"].Trim();//服务器名称
if (Request.ServerVariables["HTTP_REFERER"] != null)
{
string s2 = Request.ServerVariables["HTTP_REFERER"].Trim();//http接收的名称
string s3 = "";
if (s1.Length > (s2.Length - 7))
{
s3 = s2.Substring(7);
}
else
{
s3 = s2.Substring(7, s1.Length);
}
if (s3 != s1)
{
Response.Write("警告!你的IP已经被记录!不要使用敏感字符!");//
Response.End();
}
}
}
}
[/Quote]

为什么form提交还要用这种拦截方式呢?用替换不是更好吗?
我的做法是,get提交的用这种栏截方式,form提交的用替换,就是把危险字符替换掉,比如select我就换成SELECT。
我这 种做法有无不妥,其实我也不太确定,希望有高手能解答?
加载更多回复(19)
B2B行业商务系统源码 更新说明: 1.3的版本是在1.2的版本上进行的升级,主要增加了人才招聘的模块,并更新大多由官方、用户群测试提交的大量bug,列举如下: 1. 重点针对安全做更新,对sql注入进行更新。 2. 新增并完善人才系统。 3. 新增完善招聘系统功能 4. 对SEO部分重新规划升级 5. 增加后台SQL执行能力,并做安全部署。 6. 对行业分类的移动、删除的功能做了强化。 7. 友情链接的发布管理功能进行修复 8. 对供求列表的缩略图形式做出修正。 9. 产品详细页图片形式修改 10. 会员商铺供应信息分类修正。 11. 会员商铺的全部供应信息显示。 12. 商铺中不显示发布的供应信息修正 13. 商铺联系方式整理 14. 供应求助详细页联系方式整理 15. 所有的列表页的地区筛选功能修正。 16. 重新对资讯的标签进行调整,新的标签调用更加灵活。 17. 对快速发布的求购信息进行修正,能够正常显示。 18. 对后台常规管理的附件设置的修正 19. 后台会员管理的商铺信息管理的产品分类管理的修正 主要特色: 被反复测试过的响应速度。 开发过程中不断对每个页面的访问速度及响应速度进行优化,力求达到最大的打开速度,并进行数据库加压测试, 将信息填充至几十万进行相关测试,并进行记录及改善。 强负载能力,支持大动态数据。 基于多年的开发经验,从缓存技术,数据库设计,代码优化等多个角度入手,适合大动态数据的存取访问,全力保证大中型 网站的应用及长期发展。 模板操作方便,支持中文标签和标签数据实时调整。 采用模板与程序完全分离式设计,将模板直接保存为html文件,可以下载修改,也可以直接后台修改。标签可以定义为中文, 如{SY_热门采购} 操作更加直观易用,修改标签不需要再打开模板进行编辑,在标签管理内找到该标签即可实时调整参数。 高安全性。 得益于Asp.Net的高安全性基础,开发时严格控制网站的代码编写方式,做到不放过任何一处的安全隐患。 重点优化的图片上传功能。 将图片上传划分为缩略图以及原图,加快列表页的访问速度。 数据库在DB_51aspx文件夹下,附加即可。 后台登陆用户名和密码是51aspx/51aspx 常见问题: VS调试的时候,添加完后台,去浏览前台页面的时候,发现不对,图片也不显示。 解答 后台管理 常规管理里,基本网站设置,设置网站地址的时候,注意后面的端口号,要一样。否则就会出现问题
网胜B2B行业商务系统V1.3源码 更新说明: 1.3的版本是在1.2的版本上进行的升级,主要增加了人才招聘的模块,并更新大多由官方、用户群测试提交的大量bug,列举如下: 1. 重点针对安全做更新,对sql注入进行更新。 2. 新增并完善人才系统。 3. 新增完善招聘系统功能 4. 对SEO部分重新规划升级 5. 增加后台SQL执行能力,并做安全部署。 6. 对行业分类的移动、删除的功能做了强化。 7. 友情链接的发布管理功能进行修复 8. 对供求列表的缩略图形式做出修正。 9. 产品详细页图片形式修改 10. 会员商铺供应信息分类修正。 11. 会员商铺的全部供应信息显示。 12. 商铺中不显示发布的供应信息修正 13. 商铺联系方式整理 14. 供应求助详细页联系方式整理 15. 所有的列表页的地区筛选功能修正。 16. 重新对资讯的标签进行调整,新的标签调用更加灵活。 17. 对快速发布的求购信息进行修正,能够正常显示。 18. 对后台常规管理的附件设置的修正 19. 后台会员管理的商铺信息管理的产品分类管理的修正 主要特色: 被反复测试过的响应速度。 开发过程中不断对每个页面的访问速度及响应速度进行优化,力求达到最大的打开速度,并进行数据库加压测试, 将信息填充至几十万进行相关测试,并进行记录及改善。 强负载能力,支持大动态数据。 基于多年的开发经验,从缓存技术,数据库设计,代码优化等多个角度入手,适合大动态数据的存取访问,全力保证大中型 网站的应用及长期发展。 模板操作方便,支持中文标签和标签数据实时调整。 采用模板与程序完全分离式设计,将模板直接保存为html文件,可以下载修改,也可以直接后台修改。标签可以定义为中文, 如{SY_热门采购} 操作更加直观易用,修改标签不需要再打开模板进行编辑,在标签管理内找到该标签即可实时调整参数。 高安全性。 得益于Asp.Net的高安全性基础,开发时严格控制网站的代码编写方式,做到不放过任何一处的安全隐患。 重点优化的图片上传功能。 将图片上传划分为缩略图以及原图,加快列表页的访问速度。 数据库在DB_51aspx文件夹下,附加即可。 后台登陆用户名和密码是51aspx/51aspx 常见问题: VS调试的时候,添加完后台,去浏览前台页面的时候,发现不对,图片也不显示。 解答 后台管理 常规管理里,基本网站设置,设置网站地址的时候,注意后面的端口号,要一样。否则就会出现问题

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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