-
求一个过滤作为SQL语句不合法字符的正则表达式5
求一个正则表达式,要求禁止输入【,】逗号 【_】下划线 【;】
分号 【'】单引号 【--】双减号 【/*】注释开始 【*/】注释结束 【[】左中括号【]】右中括号
(在Extjs JavaScript中使用)
目的:输入文本框的内容作为SQL文的Where中的一部分,为了防止SQL注入攻击。
如果所列举的非法字符有不完善的地方,也请指出,谢谢!
2013年8月28日 11:07
1个答案 按时间排序 按投票排序
-
之前的做法是直接把请求里面的参数全部取出来Filter,不能只过滤GET,Post一样重要,缺点就是容易误伤。
import java.util.regex.Pattern; public class Test { private static final String GETFILTER= "'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; private static final String POSTFILTER = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; private static final String COOKIEFILTER = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; public static void main(String[] args) { String url = "http://javaweb.org/show.jsp?id=1'"; System.out.println(Pattern.compile(GETFILTER).matcher(url).find()); } }
2013年8月28日 17:32
相关推荐
模仿SQL语句的正则表达式练习,是我学习正则表达式过程中,对字符串经常sql语句匹配,达到练习正则表达式的目的。语句中包括了,"创建超级用户权限,"*.*"代表数据库里的所有数据,"root"代表超级用户名称,"%"代表...
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多...
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) \/>/ 匹配首尾空格的正则表达式:...
SQL参数格式 例如:select * from tb where nd=:nd and yd=:yd 想一次性把所有SQL语句中参数(带冒号)全部换成数据, 开始 选定用正则表达式。 原先写这样 代码如下: strsql.replace(/(:\w+)/g,(“$1”).substring(1)...
目录正则表达式1. 正则标记1.1 字符1.2 字符类1.3 预定义字符类1.4 边界匹配器(java一般不用到)1.5 Greedy 数量词1.6 Logical ...概述:描述了一种字符串匹配的模式,用来检查一个串是否含有某个子串、将匹配的子串替
sql server 提取汉字/数字/字母的方法 里面是Sql语句,以及测试代码等,一看就会,而且是现成的代码
本文实例讲述了MySQL中使用replace、regexp进行正则表达式替换的用法。分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于“./uploads/110100_cityHotel_北京富豪华宾馆.jpg”这样的...
以前我要查找数据都是使用like后来发现mysql中也有正则表达式了并且感觉性能要好于like,下面我来给大家分享一下mysql REGEXP正则表达式使用详解,希望此方法对大家有帮助。 MySQL采用Henry Spencer的正则表达式实施...
正则表达式是一种非常重要和有效的字符串匹配模式,将其应用于SQL语句中厂具有强大的数据处理功能。通过一个学员信息管理系统中使用的基于正则表达式的数据处理应用表明,该表达式不仅可以实现复杂的操作,而且降低了...
代码如下:Update dede_addonsoft SET dxylink=REPLACE(dxylink, ‘.zip’, ‘.rar... :正则匹配,把field字段里的 .rar 替换为 .7z MySQL正则表达式替换,字符替换方法 两句SQL,都是字符替换,比较好用。 update com
主要介绍了mysql update正则替换sql语句的相关资料,需要的朋友可以参考下
'参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)的数组,可多条件组合。 ' 条件运算符包括:> = ...
在实际工作中经常遇到截取两个相同字符串之间的字符的oracle问题,以下是相关语句
代码如下: create function dbo.F_Get_No ( @No varchar(100) ) RETURNS bigint AS BEGIN WHILE PATINDEX(‘%[^0-9]%’,@No)>0 BEGIN SET @No=STUFF(@No,PATINDEX(‘%[^0-9]%’,@No),1,”) –删掉一个非数字的字符,...
因为一个汉字是两个字符,而一个“_”符号只能代表一个字符。 (4)空值查询 IS NULL关键字可以用来判断字段的值是否为空值(NULL)。如果字段的值是空值,则满足查询条件,该记录将被查询出来。如果字段的值不是...
Mysql常用显示命令 1、显示当前数据库服务器中的数据库列表: mysql> SHOW DATABASES; 注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。 2、进入数据库: ...
编辑推荐 ...附录A 正则表达式的元字符和函数参数 1093 A.1 元字符 1093 A.2 函数和参数 1096 A.2.1 正则表达式函数 1096 A.2.2 正则表达式参数 1097 附录B 数字格式模型 1099 附录C 日期格式模型 1102
近15年来,成千上万的PL/...附录A 正则表达式的元字符和函数参数 1093 A.1 元字符 1093 A.2 函数和参数 1096 A.2.1 正则表达式函数 1096 A.2.2 正则表达式参数 1097 附录B 数字格式模型 1099 附录C 日期格式模型 1102
13、ORACLE 10G正则表达式 14、使用HINT 15、PARITION分区 16、并行操作 17、扩展DDL和DML语句 18、MODEL语句 19、10G闪回查询 20、专题-行列转换 21、专题-连续值和累计值问题 22、专题-NULL和DUAL详解 23、专题-...
LINQPad提供了多种执行...这也意味着对于要进行简单测试的任何简短代码,LINQPad非常有用,例如:棘手的数字格式字符串或者匹配正则表达式。该软件为最新破解注册版,带有完整的智能提示功能,免费版是没有智能提示的。