paip.SQL特殊字符转义字符处理
paip.SQL特殊字符转义字符处理
作者Attilax , 1466519819@qq.com
我们都知道SQL Server查询过程中,单引号“'”是特殊字符,所以在查询的时候要转换成双单引号“''”。
当然最好的方案是参数化查询。但是原有项目当更改量太大的的时候,使用转义的方案也不错..
但这只是特殊字符的一个,在实际项目中,发现对于like操作还有以下特殊字符:下划线“_”,百分号“%”,方括号“[]”以及尖号“^”。
其用途如下:
下划线:用于代替一个任意字符(相当于正则表达式中的 ? )
百分号:用于代替任意数目的任意字符(相当于正则表达式中的 * )
方括号:用于转义(事实上只有左方括号用于转义,右方括号使用最近优先原则匹配最近的左方括号)
尖号:用于排除一些字符进行匹配(这个与正则表达式中的一样)
******************过滤方法
在实际进行处理的时候,对于=操作,我们一般只需要单引号替换为双引号:' -> ''
在实际处理中,对于=操作,参数为字符串,比如说=‘’,只需要单引号替换为双引号这样就可以了。
如果是数字一类的,直接应用转数字函数就可以了。。或者需要对UNICODE前缀如%,char等也要进行转义.
对于like操作,需要进行以下替换(注意顺序也很重要)
[ -> [[] (这个必须是第一个替换的!!)
% -> [%] (这里%是指希望匹配的字符本身包括的%而不是专门用于匹配的通配符)
_ -> [_]
^ -> [^]
另外限制参数长度也是个好办法,一般限制在20位以内就可以了.
参考:
SQL Server查询中特殊字符的处理方法
SQL注入中绕过'(单引号)限制继续注入
paip.SQL特殊字符转义字符处理相关推荐
- 关于处理SQL特殊字符的基本方法总结
1.sql特殊字符带来的问题 在sql语句中,有些特殊字符,是sql保留的.比如 ' [ ] 等.我们可以先看看它们的用法. 当需要查询某数据时,加入条件语句,或着当你需要insert记录时,我们用 ...
- java sql特殊字符处理_java用字符串拼接SQL语句的特殊字符转义问题
在实际的项目开发中,往往会根据用户在界面的文本框中输入的信息,去数据库中做模糊查询.如果使用的是原始的JDBC和SQL,往往需要对用户的输入进行转义,避免生成的sql语法错误,或者防止SQL注入.比如 ...
- sql特殊字符转义,oracle中将字符 ‘ 转义
oracle中使用sql语句或多或少地会遇到使用特殊字符,比如" ' ",这时,这个单引号就会与前面的单引号匹配,将文本从中间断开,引发问题和错误.这就需要我们进行转义. 而ora ...
- .net mysql 特殊字符转义字符_MySQL 特殊字符转义问题
模糊查询时,很多特殊字符都是有特定意义的,比如%._等,这些在模糊查询中都是通配符. 如果用户在前端的输入是没有限制的,那么,一旦输入相关特殊字符,就会获得错误的查询结果,出于需求的细致要求,这个问题 ...
- java特殊字符转义字符_Java正则表达式处理特殊字符转义的方法
正则需要转义字符 '$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 异常现象: java.util.regex ...
- Jquery 选择器 特殊字符 转义字符
1.Jquery 选择器 id包含特殊字符,加双斜线 \\ 例 <input type="text" id="dbo_HouseInfo.HouseResour ...
- Oracle特殊字符,转义字符的处理
plsql中还可以set define off来关闭特殊字符,还可以用show define来查看有些特殊定义的字符. Oracle数据有个字段是存储url的,内容有特殊字符&,如果直接想执行 ...
- java 过滤sql特殊字符_防止特殊字符SQL注入实现方案
先理解所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入问题已经是老生常谈的问题了,如何避免特殊字符的SQL注 ...
- java url特殊字符转义字符_URL中包含有特殊字符,进行转义
String temp = URLEncoder.encode(json); URL中的特殊字符 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.编码的 ...
- ios html特殊字符转义字符,iOS URL 字符转义问题
图片发自简书App 前段时间,做马甲包相关的知识,把H5资源下载到本地,然后从本地解析js,渲染并加载css和图片等.再此过程中,遇到了URL字符串自动转义的问题,记录一下~ 项目需要从本地加载的Ur ...
最新文章
- pandas 索引_10分钟带你学会Pandas多层级索引
- php中mysql自增_MySQL的自增字段
- python设计一个动物类_python面向对象 动物园 例题
- RPA如何助力电信业数字化转型?
- 从零开始学python人工智能课程_从零开始如何学习人工智能?
- mysql 表丢失_Mysql数据库备份 部分数据表丢失 Mysql table doesn't exist 解决
- Python 机器学习在线指南
- 控制文件夹递归深度_TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)...
- 6月3号=》66页-70页
- 关于PHP在企业级开发领域的访谈——企业级开发,PHP准备好了吗?
- python3 socket sendall_全网最详细python中socket套接字send与sendall的区别
- 【webi 专题】能否通过传参数动态生成二维图表?
- 老程序员应该记住的 5 件事
- 网络安全与管理精讲视频笔记4-数字信封、数字签名、完整性验证、数据加解密及身份认证流程...
- fastjson将json字符串转化成map的五种方法
- Java setlocale方法_Java MessageFormat setLocale()用法及代码示例
- 上班族们都有哪些一直坚持的业余兴趣爱好?
- Postgis使用工具raster2pgsql批量导入栅格数据(一)
- Vue.js实现点击左右按钮图片切换
- 【设计模式】简单工厂模式+工厂方法模式+抽象工厂模式
热门文章
- 跨平台日志清理工具 Log-Cutter v2.0.1 RC-1 发布
- 关于Union,Struct and Class的大小计算问题
- NetScaler的cookieinsert和sourceip联合保持机制
- RedHat Enterprise Linux 4的新安全机制-SELinux
- P1491 集合位置
- 如何设计一个完美的权限管理模块
- Leetcode题目practice
- MyBatis框架、log4j、数据库的配置文件
- flex align-center:center多行垂直方向居中 align-items:center垂直方向单行居中
- API的理解和使用——有序集合