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();
}

posted @   yinghualeihenmei  阅读(583)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享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()
点击右上角即可分享
微信分享提示