java正则表达式匹配非单引号?java如何防止sql注入
其实java正则表达式匹配非单引号的问题并不复杂,但是又很多的朋友都不太了解java如何防止sql注入,因此呢,今天小编就来为大家分享java正则表达式匹配非单引号的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
一、谓语表达式类型
谓语表达式由表达式、运算符和值组成
7.BETWEEN必须满足“表达式BETWEEN{下线,下限}”的格式,要求该表达式的值必须大于或等于下线,并小于或等于上限。
BEGINSWITH检查某个字符串是否以指定的子串开头
LIKE某个字符串是否匹配指定的字符串模板LIKE运算符后面可使用字符串模板,该字符串模板允许使用*和?两个通配符,其中*代表人一多个字符?代表一个字符
MATCHES是否匹配指定的正则表达式正则表达式虽然功能最强大,但执行效率也最低。
字符串和比较运算符区分大小写和重低音符号,如希望自付出啊你比较运算符不区分大小写和重音符号,可在运算符后使用[c](指定区分大小写)、[d](指定不区分重音符号)选项
ANYSOME指定只要集合中任意一个元素满足条件返回YES
IN只有当左边表达式或值出现在右边的集合中才会返回YES例如nameIN{'Ben','Melissa','Nick'}只有name值为‘Ben’‘Melissa’或‘Nick’之一才返回YES
array[SIZE]返回array数组中元素的个数
在位于表达式中使用双引号和单引号的效果是一样的但是单引号只能用单引号结束双引号只能用双引号结束,不能混用
'text'"text"代表字符串
数组数组元素以英文逗号隔开{‘comma’,'seoarated'}
数值直接量整数小数科学计数法表示形式
二、java如何防止sql注入
1、java防SQL注入,最简单的办法是杜绝SQL拼接,SQL注入攻击能得逞是因为在原有SQL语句中加入了新的逻辑,如果使用PreparedStatement来代替Statement来执行SQL语句,其后只是输入参数,SQL注入攻击手段将无效,这是因为PreparedStatement不允许在不同的插入时间改变查询的逻辑结构,大部分的SQL注入已经挡住了,在WEB层我们可以过滤用户的输入来防止SQL注入比如用Filter来过滤全局的表单参数
2、04importjavax.servlet.FilterChain;
3、05importjavax.servlet.FilterConfig;
4、06importjavax.servlet.ServletException;
5、07importjavax.servlet.ServletRequest;
6、08importjavax.servlet.ServletResponse;
7、09importjavax.servlet.http.HttpServletRequest;
8、10importjavax.servlet.http.HttpServletResponse;
9、12*通过Filter过滤器来防SQL注入攻击
10、15publicclassSQLFilterimplementsFilter{
11、16privateStringinj_str="'|and|exec|insert|select|delete|update|count|*|%
12、|chr|mid|master|truncate|char|declare|;|or|-|+|,";
13、17protectedFilterConfigfilterConfig=null;
14、19*Shouldacharacterencodingspecifiedbytheclientbeignored?
15、21protectedbooleanignore=true;
16、22publicvoidinit(FilterConfigconfig)throwsServletException{
17、24this.inj_str=filterConfig.getInitParameter("keywords");
18、26publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
19、27FilterChainchain)throwsIOException,ServletException{
20、28HttpServletRequestreq=(HttpServletRequest)request;
21、29HttpServletResponseres=(HttpServletResponse)response;
22、30Iteratorvalues=req.getParameterMap().values().iterator();//获取所有的表单参数
23、32String[]value=(String[])values.next();
24、33for(inti=0;i 25、35//TODO这里发现sql注入代码的业务逻辑代码 26、40chain.doFilter(request,response); 27、42publicbooleansql_inj(Stringstr) 28、44String[]inj_stra=inj_str.split("\\|"); 29、45for(inti=0;i 30、47if(str.indexOf(""+inj_stra[i]+"")>=0) 31、百度搜索圈T社区(www.aiquanti.com)免费视频教程 好了,本文到此结束,如果可以帮助到大家,还望关注本站哦! ——————————————小炎智能写作工具可以帮您快速高效的创作原创优质内容,提高网站收录量和各大自媒体原创并获得推荐量,点击右上角即可注册使用
相关新闻推荐
- java正则表达式匹配非数字符 xss正则特殊字符有哪些 2023-11-29
- java正则表达式匹配非单引号?java如何防止sql注入 2023-11-29
- java正则表达式匹配非0数字,java中“s”什么意思 2023-11-29
- java正则表达式匹配集合中的词语 jbk哪些版本支持正则表达式 2023-11-29
- java正则表达式匹配重复数字,文件怎么匹配数据 2023-11-29
- java正则表达式匹配部分数字 求一个Java正则表达式:长度6字符,第一、二位为AA或BB或CC,第3-6位为数字 2023-11-29