当前位置: 首页 > news >正文

SQL注入之账号登入

SQL注入是一种常见的安全漏洞,指的是攻击者通过向应用程序的输入参数中插入恶意的SQL代码,从而获取未经授权的数据或执行非法操作。

SQL注入可以发生在使用动态SQL查询构建的应用程序中,其中用户的输入直接拼接到SQL查询语句中,而没有进行充分的验证和过滤。攻击者可以利用这个漏洞来修改查询语句的意图,绕过身份验证,执行未经授权的操作,或者获取敏感数据。

第一步: 建一个SqlServer数据库表

create table [users]
(uId int identity(1,1) primary key,uLoginName nvarchar(50) not null,uLoginPwd nvarchar(50) not null
)

第二步: 完成程序

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;namespace Dome12_SQL注入
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}string conStr = "Data Source = WINGEL; Initial Catalog = People; Trusted_Connection = SSPI";private void button1_Click(object sender, EventArgs e){string name = textName.Text.Trim();string pwd = textPwd.Text.Trim();if (IsCheck()) // 检查用户是否输入了账号密码 可以节省性能{if(IsLogin(name, pwd)){MessageBox.Show("登入成功!");}else{MessageBox.Show("登入失败!");}}}bool IsLogin(string name, string pwd){bool b = false;using (SqlConnection conn = new SqlConnection(conStr)){// string sql = "select count(*) from dbo.users where uLoginName = "+name+" and uLoginPwd = "+pwd+"";// Format: 就是专门用来拼接SQL语句的           string sql = string.Format("select count(*) from dbo.users where uLoginName = '{0}' and uLoginPwd = '{1}'",name, pwd);using (SqlCommand cmd = new SqlCommand(sql, conn)){conn.Open();int count = Convert.ToInt32(cmd.ExecuteScalar());if (count > 0){b = true;}else{b = false;}}}return b;}// 检查文本框是否为空bool IsCheck(){bool b = true;if (textName.TextLength == 0 || textPwd.TextLength == 0) {b = false;}return b;}}
}


http://www.mrgr.cn/news/58090.html

相关文章:

  • 数据结构与算法——Java实现 47. 从中序与后序遍历序列构造二叉树
  • 做信创项目需要什么资质、信创产品认证标准?
  • 技术成神之路:设计模式(二十二)命令模式
  • 安全见闻(5)——开阔眼界,不做井底之蛙
  • Vue3父子组件中关于ref和emit的一些问题
  • Skype如何进行双向翻译?你了解多少?
  • 【SQL基础:语法、分类与DDL操作全解析】
  • 我毕业后的8年嵌入式工作
  • 1024玩码神挑战赛,太太太上头了!!!
  • 虚拟机配置静态IP地址(人狠话不多简单粗暴)
  • Lucas带你手撕机器学习——朴素贝叶斯
  • 微知SOP-定位Linux crash问题的几个常用方面和常用命令?
  • php命令执行的一些执行函数----以ctfshow靶场为解题思路
  • 超级加速:轻松发现开源项目的终极秘籍
  • 文本相似度方案
  • 【OS】2.1.2 进程的状态与转换_进程的组织
  • 关闭或开启Win11系统的自动更新
  • 软件部署-Docker容器化技术(二)
  • Electron调用nodejs的cpp .node扩展【安全】
  • 【软件工程】软件项目管理/工程项目管理复习资料
  • 案例研究|DataEase嵌入式版助力软件开发商提升行业软件交付效率
  • SAM:Segment Anything
  • LSTM(Long Short-Term Memory,长短期记忆网络)在高端局效果如何
  • 新增Python运行环境、支持病毒扫描和计划任务短信告警,1Panel开源面板v1.10.20 LTS版本发布
  • 《计算机视觉》—— 换脸
  • 等差数列、等间距数据、等间隔数字、时间序列生成 by range(), arange(), linspace(), logspace()