c#防止sql注入的具体方法与代码
原文链接: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();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-11-17 WPS实现电子手写签名
2022-11-17 为什么要使用base64编码,有哪些情景需求?
2022-11-17 js焦点事件:onfocus、onblur、focus()、blur()、select()