首页 > 数据库 >c#防止sql注入的具体方法与代码

c#防止sql注入的具体方法与代码

时间:2023-11-17 10:44:39浏览次数:29  
标签:具体方法 UserName string c# cmd strUserName sql SqlCommand

原文链接:https://www.zhihu.com/question/565076777

首先考虑使用参数化查询,参数化查询是数据库程序设计中最有效的防止SQL注入的方法,因为参数化查询将参数值作为独立的参数传递给数据库,而不是将参数值嵌入到SQL语句中。

例如:

string sql = "Select * From User WHERE UserName=@UserName";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50).Value = txtUserName.text;
SqlDataReader reader = cmd.ExecuteReader();
其次还可以考虑使用正则表达式或其他技术来检查用户输入的特殊字符,如果发现特殊字符,则拒绝执行操作。

比如:

string strUserName = txtUserName.text;
if (Regex.IsMatch(strUserName, @"^[a-zA-Z0-9_]+$"))
{
string sql = "Select * From User WHERE UserName='" + strUserName + "'";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
}

标签:具体方法,UserName,string,c#,cmd,strUserName,sql,SqlCommand
From: https://www.cnblogs.com/Dongmy/p/17838122.html

相关文章

  • sqlserver日期转换及大小写转换
    --大小写转换SELECTlower('FDS'),upper('sdasd')--大写转小写lower('FDS')--小写转大写upper('sdasd')--SQL日期转换SelectCONVERT(varchar(100),GETDATE(),0)--0516200610:57AMSelectCONVERT(varchar(100),GETDATE(),1)--05/16/06S......
  • Java IO --- select,poll,epoll
    一、select、poll、epollselect、poll、epoll都是IO多路复用的机制且本质上都是同步I/O。IO多路复用就是通过一种机制,可以同时监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知进行相应的读写操作。1.1selectintselect(intn,fd_set*readfds,fd_set*writefd......
  • Cocos Creator 3.x 如何动态修改3D物体的透明度
    CocosCreator3.x的2DUI有个组件UIOpacity组件可以动态修改UI的透明度,非常方便。很多同学想3D物体上也有一个这样的组件来动态的控制与修改3D物体的透明度。今天基于CocosCreator3.8来实现一个可以动态修改3D物体透明度的组件Opacity3D。 一个3D物体如何才能够半透明显......
  • sql注入攻击的防范措施有哪些
    https://www.php.cn/faq/498667.htmlhttps://blog.csdn.net/sundehui01/article/details/132686620一、什么是SQL注入?SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知......
  • 【题解 CF1628D2】 Game on Sum
    GameonSum(HardVersion)题面翻译Alice和Bob正在玩一个游戏,游戏分为\(n\)个回合,Alice和Bob要轮流对一个数\(x\)进行操作,已知这个数初始值是\(0\)。具体每个回合的行动规则如下:Alice选择一个在区间\([0,k]\)之间的实数\(t\)。Bob可以选择让\(x\)变成\(......
  • 【ElasticSearch】数据迁移方案
    一、需求背景ES环境要从单机迁移到集群上面现在已有的数据也要搬过去,有几个索引三四千万数据大概二、实现方案有两种,使用ElasticDump和LogStash的ES插件1、ElasticDump迁移工具相关资料资料参考:https://blog.csdn.net/weixin_43833817/article/details/110387932https:/......
  • 来自 szc 的字符串和搜索的总结
    膜拜szc大佬。原链接。题单+代码哈希普通哈希不讲了,讲讲树哈希。对于判断一对同构树,要考虑相同结构的儿子在两类树的不同位置。此时有两种方法,一种是正常的按序哈希,我们很好想到在哈希时对儿子节点的哈希值进行排序,规定一个顺序塞进去。另一种方法则是不使用多项式哈希,对......
  • Cocos Creator 项目实战《3D切水果》
    今天跟大家分享一个CocosCreator3D切水果的实战案例,帮助大家掌握CocosCreator开发3D微信抖音小游戏,开发工具我们采用的是CocosCreator3.6。先上一波游戏操作效果图,接下来通过本文来讲解这个游戏的一些核心的技术点。   游戏项目资源准备 我们刚开始做项目的时候......
  • CPU 程序性能优化
    一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,第一,必须选择合适的算法和数据结构;第二,应该编写编译器能够有效优化以转换成高效可执行代码的源代码,要做到这一点,需要了解编译器的能力和限制;第三,要了解硬件的运行方式,针对硬件特性进行优......
  • HCS651统一备份FusionSphere备份失败问题小结
    登录ELB-DB节点在确认查询无网络问题后此节点从失败详情中能够查询到,主备IP可根据详情中的IP地址关联从om获取 #cat/etc/sudoers.d/elbommALL=(root)NOPASSWD:/opt/gaussdb/ha/tools/gsCerts/query_gs_ca.shommALL=(root)NOPASSWD:/opt/gaussdb/ha/tools/gsCerts/qu......