sql关键词脚本检查正则表达式的方法

2025-05-29 0 103

sql拼装过程中有时候需要把特殊外部的参数拼装到sql语句中去,若不检测外部传入的参数是否含有sql关键词,黑客利用系统这个漏洞注入sql脚本语句进行数据库删除或盗取数据资料。

sql关键词脚本检查正则表达式

?

1
\\b(and|exec|insert|select|drop|grant|alter|delete|update|count|chr|mid|master|truncate|char|declare|or)\\b|(\\*|;|\\+|'|%)

Java语言

?

1

2

3

4

5

6

7

8

9

10
/**

* 是否含有sql注入,返回true表示含有

* @param obj

* @return

*/

public static boolean containsSqlInjection(Object obj){

Pattern pattern= Pattern.compile("\\\\b(and|exec|insert|select|drop|grant|alter|delete|update|count|chr|mid|master|truncate|char|declare|or)\\\\b|(\\\\*|;|\\\\+|'|%)");

Matcher matcher=pattern.matcher(obj.toString());

return matcher.find();

}

单元测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13
@Test

public void testContainsSqlInjection(){

boolean b1=SqlUtils.containsSqlInjection("and nm=1");

assertEquals("b1不为true",true,b1);

boolean b2=SqlUtils.containsSqlInjection("niamsh delete from ");

assertEquals("b2不为true",true,b2);

boolean b3=SqlUtils.containsSqlInjection("stand");

assertEquals("b3不为false",false,b3);

boolean b4=SqlUtils.containsSqlInjection("and");

assertEquals("b4不为true",true,b4);

boolean b5=SqlUtils.containsSqlInjection("niasdm%asjdj");

assertEquals("b5不为true",true,b5);

}

总结

以上所述是小编给大家介绍的sql关键词脚本检查正则表达式,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 sql关键词脚本检查正则表达式的方法 https://www.kuaiidc.com/88315.html

相关文章

发表评论
暂无评论