`

谈谈防 SQL 注入式攻击策略

阅读更多

谈谈防 SQL 注入式攻击策略

SQL 注入式攻击是指利用设计上的漏洞, 在目标服务器上运行 SQL 命令以及进行其他方式的攻击, 动态生成 SQL 语句时没有对用户输入的数据进行验证. SQL 注入式攻击是一各常规性的攻击, 可以允许一些不法用户检索他人的数据或改变服务器的设置或者在他人不小心的时候破坏其服务器. SQL 注入式攻击不是 SQL Server 问题, 而是不适当的程序.
要防范 SQL 注入式攻击, 应该注意以下几点:
(1). 检查输入的 SQL 语句的内容, 如果包含敏感字符, 则删除敏感字符, 一般敏感字符包括: ', >, <=, !, -, +, *, /, |, 空格等.
(2). 不要在用户输入过程中构造 WHERE 子句, 应该利用参数来使用存储过程.
因为 SQL 注入一般出现在程序开发构造一个 WHERE 子句伴随着用户输入的时候.
过滤非法字符的两种方法:
(1). 在 ASP.NET 可以自定义一个方法过滤非法字符, 效率较底, 但对敏感字符的过滤比较彻底. 实现如下:
///<summary>
///防止 SQL 注入式攻击
///</summary>
///<param name="inputString">用户输入字符串</param>
public string ConvertSql(string inputString)
{
inputString = inputString.Trim(); //去空格
inputString = inputString.Replace("'", ""); //去单引号
inputString = inputString.Replace(";", ""); //去分号
inputString = inputString.Replace("=", ""); //去等号
inputString = inputString.Replace("or", ""); //去 or
inputString = inputString.Replace("and", ""); //去 and
inputString = inputString.Replace("like", ""); //去 通配符

//............用户可以根据需要定义任何敏感字符
return inputString;
}

(2).由于上面这种枚举的方法对程序效率显然有影响, 因此并不是最有效的途径.
其实最佳途径可以通过 SqlCommandParameners 属性的参数传值实现, 将非法字符过滤.
原理是SQL 语句在传送过程中参数(用户输入的内容)是不可见的. 自然失去了攻击的机会.
以登录为例, 实现如下:
public int checkLogin(string loginName, string loginPwd)
{
SqlConnection con = new SqlConnection("Server=***;database=***;Uid=sa;Pwd=***");
SqlCommand myCommand = new SqlCommand("select count(*) from user where userName=@loginName and userPwd=@loginPwd", con);
myCommand.Parameters.Add(new SqlParameter("@loginName", SqlDbType.NVarChar, 20));
myCommand.Parameters["@loginName"].Value = loginName;
myCommand.Parameters.Add(new SqlParameter("@loginPwd", SqlDbType.NVarChar, 20));
myCommand.Parameters["@loginPwd"].Value = loginPwd;
myCommand.Connection.Open();
int i = (int)myCommand.ExecuteScalar();
myCommand.Connection.Close();
return i;
}

(3).最实用的方法: 建议大家多写存储过程, 它的作用不再仅仅是大家认为的那样起到提供一个接口, 提高执行速度等作用, 当今系统对性能和安全的要求已上升到主要位置.不用担心过多的建立存储过程会给服务器带来负担, 也不要认为书写存储过程麻烦, 当一个庞大的系统把大量的时间花在 SQL 语句的维护与解析和对系统安全的防范时, 这种麻烦完全是值得的. 最明显的优点是当你多建一个存储过程, 少一句前台 SQL 语句时: 便可兼得提高效率与防 SQL 注入式攻击, 何乐而不为呢?

分享到:
评论

相关推荐

    subversion-javahl-1.7.14-16.el7.x64-86.rpm.tar.gz

    1、文件内容:subversion-javahl-1.7.14-16.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/subversion-javahl-1.7.14-16.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    三维卷积神经网络方法改进及其应用综述.pdf

    三维卷积神经网络方法改进及其应用综述.pdf

    基于STM32F103ZE的扫地机器人程序:弓字形行进、WiFi控制及避障功能,一键启动及回归初始位置,扫地机器人 基于stm32f103ze扫地机器人程序,基于整点原子精英版例程修改 本产品主要实

    基于STM32F103ZE的扫地机器人程序:弓字形行进、WiFi控制及避障功能,一键启动及回归初始位置,扫地机器人 基于stm32f103ze扫地机器人程序,基于整点原子精英版例程修改。 本产品主要实现的是机器人自动弓字形前进,遇到障碍物避障并继续,WiFi控制整个过程,同时可一键回到初始位置。 步进电机+超声波避障+弓字形行进+WIFI控制+一建启动一建回到初始位置。 包含的电子资料见图(不含实物)。 ,核心关键词: stm32f103ze扫地机器人程序; 整点原子精英版例程; 机器人自动弓字形前进; 障碍物避障; WiFi控制; 一键回到初始位置; 步进电机; 超声波避障; 电子资料。,STM32F103ZE扫地机器人:WiFi控制,避障回原一键操作

    一个功能强大的日志分析工具,支持多种格式的日志文件分析和可视化

    ## 功能特点 1. 日志解析 - 自定义日期格式 - 正则表达式匹配 - 多种日志格式支持 - 灵活的解析规则 2. 统计分析 - 按级别统计 - 按时间统计 - 错误日志分析 - 关键词搜索 3. 可视化展示 - 饼图统计 - 时间分布图 - 趋势分析 - 实时更新 4. 其他功能 - 数据导出 - 结果筛选 - 时间范围过滤 - 批量处理 ## 使用要求 - Python 3.6+ - 需要安装的库: ```bash pip install pandas matplotlib ``` ## 使用方法 1. 选择文件: - 选择日志文件 - 设置日期格式 - 配置解析规则 - 设置时间范围 2. 分析选项: - 选择统计方式 - 设置关键词 - 配置分析参数 - 自定义过滤条件 3. 查看结果: - 查看统计数据 - 浏览图表展示 - 导出分析结果 - 保存报告 ## 注意事项 -

    DeepSeek部署聊天机器人,开始赚取第一桶金的教程

    内容概要:本文详细介绍了如何通过DeepSeek API部署聊天机器人,并从多个方面探讨了聊天机器人的商业化路径。首先讲解了从需求调研、架构设计到最后部署与维护的完整步骤,涉及了前后端开发以及技术选型等问题;然后深入阐述了三种主要的盈利模式——企业服务(包括定制化开发、服务年费、数据合作)、个人用户服务(涵盖开发聊天机器人APP和服务咨询)以及其他如自媒体内容创作、网文创作与流量变现的方式。 适用人群:有意进入AI聊天机器人领域的创业者、开发者或是想要探索AI商业化的企业管理人员。 使用场景及目标:帮助读者掌握聊天机器人的部署流程及其商业运作方式,无论是为特定企业提供专属解决方案还是面向大众市场推出创新型产品或服务。 其他说明:对于希望通过AI技术创新实现创业梦想的人来说,这份指南提供了一个全面而具体的实践路径。

    perl516-perl-File-ShareDir-1.03-3.el6.centos.alt.noarch.rpm

    perl516-perl-File-ShareDir-1.03-3.el6.centos.alt.noarch.rpm

    system-config-keyboard-base-1.4.0-5.el7.x64-86.rpm.tar.gz

    1、文件内容:system-config-keyboard-base-1.4.0-5.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/system-config-keyboard-base-1.4.0-5.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    三凌FX3U源码全套生产方案:含PCB、原理图及稳定运行PLC FX3U源码,专业品质保障,三凌FX3U源码,包括pcb,原理图 ,FX3U源码 PLC FX3U源码 FX-3U 全套生产方案,稳定运

    三凌FX3U源码全套生产方案:含PCB、原理图及稳定运行PLC FX3U源码,专业品质保障,三凌FX3U源码,包括pcb,原理图 ,FX3U源码 PLC FX3U源码 FX-3U 全套生产方案,稳定运行 ,核心关键词:三凌FX3U源码; PCB; 原理图; FX3U源码 PLC; FX-3U; 全套生产方案; 稳定运行,"三凌FX3U全套生产方案:稳定运行、全系列源码及原理图PCB解析"

    基于UDS的BootLoader上位机源代码(C#):支持ISO通信与多种CAN卡,S-record格式解析及二次开发扩展应用,基于UDS的BootLoader上位机源代码(C#) 基于UDS的Boo

    基于UDS的BootLoader上位机源代码(C#):支持ISO通信与多种CAN卡,S-record格式解析及二次开发扩展应用,基于UDS的BootLoader上位机源代码(C#) 基于UDS的BootLoader上位机源代码,支持ISO15765通信,支持PeakCAN , ZJG CAN等CAN卡, 支持S-record格式的二进制文件解析; 可二次开发或扩展应用。 ,核心关键词:UDS BootLoader;上位机源代码(C#);ISO15765通信;PeakCAN;ZJG CAN;CAN卡;S-record格式;二进制文件解析;二次开发;扩展应用。,UDS BootLoader上位机源码(支持多种CAN卡及S-record格式解析)

    perl516-perl-Pod-Checker-1.70-2.el6.centos.alt.noarch.rpm

    perl516-perl-Pod-Checker-1.70-2.el6.centos.alt.noarch.rpm

    目标检测-餐厅餐盘剩余食物种类检测数据集6037张YOLO+VOC格式.zip

    数据集格式:VOC格式+YOLO格式 压缩包内含:3个文件夹,分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计:6037 Annotations文件夹中xml文件总计:6037 labels文件夹中txt文件总计:6037 标签种类数:32 标签名称:["Apple","Apple-core","Apple-peel","Bone","Bone-fish","Bread","Bun","Egg-hard","Egg-scramble","Egg-shell","Egg-steam","Egg-yolk","Fish","Meat","Mussel","Mussel-shell","Noodle","Orange","Orange-peel","Other-waste","Pancake","Pasta","Pear","Pear-core","Pear-peel","Potato","Rice","Shrimp","Shrimp-shell","Tofu","Tomato","Vegetable"] 每个标签的框数(注意yolo格式类别顺序不和这个对应,而以

    昆仑通态触摸屏与三菱PLC通讯案例:实现触摸屏与PLC编程口连接监控功能,昆仑通态MCGS与三菱FX3U 485BD方式通讯案例功能:实现昆仑通态触摸屏与三菱FX3U的485BD板通过485方式进行连

    昆仑通态触摸屏与三菱PLC通讯案例:实现触摸屏与PLC编程口连接监控功能,昆仑通态MCGS与三菱FX3U 485BD方式通讯案例功能:实现昆仑通态触摸屏与三菱FX3U的485BD板通过485方式进行连接,而PLC的编程口同时又能与电脑连接,进行程序下载监控。 器件:三菱FX3U PLC,三菱FX3U 485BD板,昆仑通态触摸屏 说明:是程序,非硬件 ,核心关键词:昆仑通态触摸屏; 三菱FX3U PLC; 485BD方式通讯; 485方式连接; PLC编程口; 程序下载监控; 硬件非程序。,"昆仑通态触摸屏与三菱PLC的485通讯编程案例:连接、监控与程序下载"

    学习笔记-单片机蓝桥杯技巧2-西风

    学习笔记-单片机蓝桥杯技巧2-西风

    神州笔记本 海华无线网卡驱动

    神州笔记本 海华无线网卡驱动

    2024年最新版ERP进销存网络多仓版WEB源码

    2024年最新版ERP进销存网络多仓版WEB源码。 运行环境:PHP5.6+MYSQL5.6 恢复数据库sql数据 配置sql参数连接路径:application\config\database.php 前台登录用户名:admin 密码:admin

    永磁同步电机PMSM无感FOC驱动代码详解:高频注入启动,平滑切入观测器高速控制,手写开源,可移植至各类MCU,附仿真模型,永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控

    永磁同步电机PMSM无感FOC驱动代码详解:高频注入启动,平滑切入观测器高速控制,手写开源,可移植至各类MCU,附仿真模型,永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控制,代码全部手写开源,可以移植到各类mcu上。 附赠高频注入仿真模型 ,核心关键词:永磁同步电机;PMSM无感FOC驱动代码;高频注入;平滑切入观测器;高速控制;手写开源;MCU移植;仿真模型。,基于PMSM的高频注入与FOC控制开源代码,可平滑切换观测器,MCU兼容性强,支持高频注入仿真模型。

    telepathy-glib-0.24.1-1.el7.x64-86.rpm.tar.gz

    1、文件内容:telepathy-glib-0.24.1-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/telepathy-glib-0.24.1-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    sssd-proxy-1.16.5-10.el7-9.16.x64-86.rpm.tar.gz

    1、文件内容:sssd-proxy-1.16.5-10.el7_9.16.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/sssd-proxy-1.16.5-10.el7_9.16.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    t1lib-5.1.2-14.el7.x64-86.rpm.tar.gz

    1、文件内容:t1lib-5.1.2-14.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/t1lib-5.1.2-14.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    snappy-1.1.0-3.el7.x64-86.rpm.tar.gz

    1、文件内容:snappy-1.1.0-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/snappy-1.1.0-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

Global site tag (gtag.js) - Google Analytics