什么是SQL注入攻击?

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。[1] 比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

正常登录:

用户名:admin 密码:admin

SQL注入漏洞测试:

  • 在正常用户名admin后增加一个单引号,单击"登录"

  • 或在URL地址栏直接输入http://127.0.0.1:8081/login.asp?name=admin'&pass=admin

  • 若出错,证明没有对'进行过滤,存在SQL注入漏洞

那么如何防范出现这种情况呢。说白了直接获取字符串过滤判断即可,那么以下就是一个高可用的字符串判断方法。

可以直接使用。

package StrTest;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class demo {public static void main(String[] args) {boolean isf = containsSqlInjection("http://127.0.0.1:8081/login?name=admin &pass=admin' and '1=1");System.out.println(isf?"sql注入攻击":"安全字符串");}/*** 是否含有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();}}

希望能给大家带来一定的帮助。

防范sql注入式攻击(Java字符串校验,高可用性)相关推荐

  1. ASP.NET中如何防范SQL注入式攻击

    1将sql中使用的一些特殊符号,如' -- /* ; %等用Replace()过滤: 2限制文本框输入字符的长度: 3检查用户输入的合法性:客户端与服务器端都要执行,可以使用正则. 4使用带参数的SQ ...

  2. 【转载】防范SQL注入式攻击

    SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因. 比如: 如果你的查询语句 ...

  3. 防范SQL注入式攻击

    SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因. 比如: 如果你的查询语句 ...

  4. 什么是SQL注入式攻击,如何去防范SQL注入式攻击

    1.SQL注入式攻击 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.比如:攻击者在用户名字和密码输入框中输入"' ...

  5. [ZT]ASP.NET中如何防范SQL注入式攻击

    所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存 ...

  6. 什么是SQL注入式攻击!如何防范SQL注入式攻击?

    1.所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令. 2.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令 ...

  7. 如何防范SQL注入式攻击?

    只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了.过滤输入内容可以按多种方式进行. ⑴ 对于动态构造SQL查询的场合,可以使用下面的技术: 第一:替换单引号,即把所有单独出现 ...

  8. 什么叫做SQL注入式攻击,如何防范?

    所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为 ...

  9. 什么是注入式攻击,如何防止sql注入式攻击。

    什么是SQL注入式攻击? a. 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令. b. 在某些表单中,用户输入的内容直接用来 ...

最新文章

  1. 《FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds》
  2. SpringBoot+pagehelper分页之后还显示全部数据(分页不管用)的解决方案
  3. 国外网站评出对程序员最具影响的书籍清单
  4. 一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
  5. 图解算法学习笔记(八):贪婪算法
  6. Python: 使用装饰器“@”取得函数执行时间
  7. 【半年总结】愿有岁月可回首
  8. 数据挖掘实践(金融风控)——task3:特征工程
  9. 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
  10. 中国火炬统计数据 2008-2021年
  11. 熊猫关键词工具v2.8.1.0绿色版SEO工具
  12. PDF如何旋转页面,PDF旋转页面的操作方法
  13. 【JZOJ 4623】搬运干草捆
  14. VR时代的媒介——虚拟的真实感就是真实
  15. [转] ThreeJS中,那些会让阴影失效的操作
  16. e1000e网卡驱动分析—概述
  17. 【研究】心脏出血漏洞
  18. 微信公众号使用:微信公众平台企业号一次发布多条图文消息的方法
  19. i386 、x86_64 、ppc是指
  20. 目标检测 | End-to-end Lane Detection through Differentiable Least-Squares Fitting

热门文章

  1. 是栈还是队列c语言实验报告怎么写,队列和栈(C语言)
  2. DeepLearning.AI第一部分第四周:深层神经网络
  3. 十种经济的方法帮你建立企业品牌
  4. IJ-java-com-util-common:
  5. ACM数论之旅2---快速幂,快速求a^b
  6. Linux下各文件夹的含义和用途
  7. 央行“意外“降息 专家称贷款买房者首先受益
  8. Miner3D 数据分析软件
  9. JFreeChart项目实例
  10. 关于 Web Deployment Projects