paip.SQL特殊字符转义字符处理

作者Attilax , 1466519819@qq.com

我们都知道SQL Server查询过程中,单引号“'”是特殊字符,所以在查询的时候要转换成双单引号“''”。

当然最好的方案是参数化查询。但是原有项目当更改量太大的的时候,使用转义的方案也不错..

但这只是特殊字符的一个,在实际项目中,发现对于like操作还有以下特殊字符:下划线“_”,百分号“%”,方括号“[]”以及尖号“^”。

其用途如下:

下划线:用于代替一个任意字符(相当于正则表达式中的 ? )

百分号:用于代替任意数目的任意字符(相当于正则表达式中的 * )

方括号:用于转义(事实上只有左方括号用于转义,右方括号使用最近优先原则匹配最近的左方括号)

尖号:用于排除一些字符进行匹配(这个与正则表达式中的一样)

******************过滤方法

在实际进行处理的时候,对于=操作,我们一般只需要单引号替换为双引号:' -> ''

在实际处理中,对于=操作,参数为字符串,比如说=‘’,只需要单引号替换为双引号这样就可以了。

如果是数字一类的,直接应用转数字函数就可以了。。或者需要对UNICODE前缀如%,char等也要进行转义.

对于like操作,需要进行以下替换(注意顺序也很重要)
[ -> [[] (这个必须是第一个替换的!!)
% -> [%] (这里%是指希望匹配的字符本身包括的%而不是专门用于匹配的通配符)
_ -> [_]
^ -> [^]

另外限制参数长度也是个好办法,一般限制在20位以内就可以了.

参考:

SQL Server查询中特殊字符的处理方法

SQL注入中绕过'(单引号)限制继续注入

paip.SQL特殊字符转义字符处理相关推荐

  1. 关于处理SQL特殊字符的基本方法总结

    1.sql特殊字符带来的问题 在sql语句中,有些特殊字符,是sql保留的.比如 ' [ ]  等.我们可以先看看它们的用法. 当需要查询某数据时,加入条件语句,或着当你需要insert记录时,我们用 ...

  2. java sql特殊字符处理_java用字符串拼接SQL语句的特殊字符转义问题

    在实际的项目开发中,往往会根据用户在界面的文本框中输入的信息,去数据库中做模糊查询.如果使用的是原始的JDBC和SQL,往往需要对用户的输入进行转义,避免生成的sql语法错误,或者防止SQL注入.比如 ...

  3. sql特殊字符转义,oracle中将字符 ‘ 转义

    oracle中使用sql语句或多或少地会遇到使用特殊字符,比如" ' ",这时,这个单引号就会与前面的单引号匹配,将文本从中间断开,引发问题和错误.这就需要我们进行转义. 而ora ...

  4. .net mysql 特殊字符转义字符_MySQL 特殊字符转义问题

    模糊查询时,很多特殊字符都是有特定意义的,比如%._等,这些在模糊查询中都是通配符. 如果用户在前端的输入是没有限制的,那么,一旦输入相关特殊字符,就会获得错误的查询结果,出于需求的细致要求,这个问题 ...

  5. java特殊字符转义字符_Java正则表达式处理特殊字符转义的方法

    正则需要转义字符 '$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 异常现象: java.util.regex ...

  6. Jquery 选择器 特殊字符 转义字符

    1.Jquery   选择器 id包含特殊字符,加双斜线 \\ 例 <input type="text" id="dbo_HouseInfo.HouseResour ...

  7. Oracle特殊字符,转义字符的处理

    plsql中还可以set define off来关闭特殊字符,还可以用show define来查看有些特殊定义的字符. Oracle数据有个字段是存储url的,内容有特殊字符&,如果直接想执行 ...

  8. java 过滤sql特殊字符_防止特殊字符SQL注入实现方案

    先理解所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入问题已经是老生常谈的问题了,如何避免特殊字符的SQL注 ...

  9. java url特殊字符转义字符_URL中包含有特殊字符,进行转义

    String temp = URLEncoder.encode(json); URL中的特殊字符 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.编码的 ...

  10. ios html特殊字符转义字符,iOS URL 字符转义问题

    图片发自简书App 前段时间,做马甲包相关的知识,把H5资源下载到本地,然后从本地解析js,渲染并加载css和图片等.再此过程中,遇到了URL字符串自动转义的问题,记录一下~ 项目需要从本地加载的Ur ...

最新文章

  1. pandas 索引_10分钟带你学会Pandas多层级索引
  2. php中mysql自增_MySQL的自增字段
  3. python设计一个动物类_python面向对象 动物园 例题
  4. RPA如何助力电信业数字化转型?
  5. 从零开始学python人工智能课程_从零开始如何学习人工智能?
  6. mysql 表丢失_Mysql数据库备份 部分数据表丢失 Mysql table doesn't exist 解决
  7. Python 机器学习在线指南
  8. 控制文件夹递归深度_TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)...
  9. 6月3号=》66页-70页
  10. 关于PHP在企业级开发领域的访谈——企业级开发,PHP准备好了吗?
  11. python3 socket sendall_全网最详细python中socket套接字send与sendall的区别
  12. 【webi 专题】能否通过传参数动态生成二维图表?
  13. 老程序员应该记住的 5 件事
  14. 网络安全与管理精讲视频笔记4-数字信封、数字签名、完整性验证、数据加解密及身份认证流程...
  15. fastjson将json字符串转化成map的五种方法
  16. Java setlocale方法_Java MessageFormat setLocale()用法及代码示例
  17. 上班族们都有哪些一直坚持的业余兴趣爱好?
  18. Postgis使用工具raster2pgsql批量导入栅格数据(一)
  19. Vue.js实现点击左右按钮图片切换
  20. 【设计模式】简单工厂模式+工厂方法模式+抽象工厂模式

热门文章

  1. 跨平台日志清理工具 Log-Cutter v2.0.1 RC-1 发布
  2. 关于Union,Struct and Class的大小计算问题
  3. NetScaler的cookieinsert和sourceip联合保持机制
  4. RedHat Enterprise Linux 4的新安全机制-SELinux
  5. P1491 集合位置
  6. 如何设计一个完美的权限管理模块
  7. Leetcode题目practice
  8. MyBatis框架、log4j、数据库的配置文件
  9. flex align-center:center多行垂直方向居中 align-items:center垂直方向单行居中
  10. API的理解和使用——有序集合