网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月08日漏签0天
c#吧 关注:188,662贴子:823,806
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 7回复贴,共1页
<<返回c#吧
>0< 加载中...

初学者,求指点:关于使用1' or '1'='1登陆问题.

  • 只看楼主
  • 收藏

  • 回复
  • cnsimplo
  • c#爱好者
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
自知代码写的很不严谨,
一直没有想到这个问题上来,是因为这个程式写出来暂时只给自己部门人用的,希望各位老师指点下,我要怎么改才好?
下面是代码
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.textBox1.Text.Trim()))
{
try
{
string a = this.textBox1.Text.ToUpper().Trim();
string b = this.textBox2.Text.Trim();
string sql = @"SELECT * from wo_no where workno ='" + a + "' and password='"+b+"'";//查询数据库里的账号与密码
SqlConnection conn = new SqlConnection("server=服务器IP;database=meshr;User ID=sa;Password=数据库密码;");//打开sql server数据库
SqlCommand cmd=new SqlCommand(sql,conn);
SqlDataAdapter data =new SqlDataAdapter();
data.SelectCommand = cmd;
DataSet ds = new DataSet();
data.Fill(ds, "cs");
if (ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("请输入正确账号或密码!");
textBox1.Text = "";
textBox2.Text = "";
}
else
{
username = textBox1.Text;
Form1 f1 = new Form1();
f1.Show();
//this.Hide();//登陆窗口开启后瘾藏
}
}
catch (SqlException)
{
return ;
}
}
else
{
MessageBox.Show("请输入账号!"); //如果账号栏为空,则show出提示.
return ;
}
}


  • wangzhiqing999
  • c#大师
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
使用 SqlParameter 可以避免一些 拼SQL 出现的问题。
/// <summary>
/// 用于查询 数据是否存在的 SQL 语句.
/// </summary>
private const String EXIST_SQL =
@"
SELECT
COUNT(1)
FROM
sale_report
WHERE
sale_date = @sale_date
AND sale_item = @sale_item";
/// <summary>
/// 检测数据库中,是否有指定记录的数据.
/// </summary>
/// <param name="conn"></param>
/// <returns></returns>
private bool ExistData(SqlConnection conn)
{
// 创建一个 Command.
SqlCommand existCommand = conn.CreateCommand();
// 定义需要执行的SQL语句.
existCommand.CommandText = EXIST_SQL;
// 定义要查询的参数.
existCommand.Parameters.Add(new SqlParameter("@sale_date", TEST_SALE_DATE));
existCommand.Parameters.Add(new SqlParameter("@sale_item", TEST_SALE_ITEM));
// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。
Object oRowCount = existCommand.ExecuteScalar();
// 转换为 int 类型.
int rowCount = Convert.ToInt32(oRowCount);
return (rowCount != 0);
}


2025-12-08 03:20:31
广告
不感兴趣
开通SVIP免广告
  • 你妹_伤不起
  • c#大牛
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
是说简单的sql注入?
用 replace(",","")或者format 把sql中的关键字神马的格式化一遍


  • 梦丶回忆流年
  • c#求知者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
程序员总有偷懒的时候,总会拼接SQL语句导致数据库被读取,后台被登录,服务器被写入shell.
一般大公司会有通用的解决方案,在请求层过滤危险请求。


  • 贴吧用户_02JZ1UN
  • c#攻城狮
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
对输入的字符串验证就可以了,给你一个我写的方法,用了就可以


  • btcbsc
  • c#大牛
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
其实我不是机器人,我是来自低调奢华有内涵的百度BAE!


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回c#吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示