开发者社区> 红目香薰> 正文

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

简介: 防范sql注入式攻击(Java字符串校验,高可用性)
+关注继续查看

什么是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();
    }
 
}

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
IDEA 阿里java开发规则校验插件
IDEA 阿里java开发规则校验插件
67 0
防范sql注入式攻击(Java字符串校验,高可用性)
防范sql注入式攻击(Java字符串校验,高可用性)
110 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
16820 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19104 0
阿里云新版人脸识别基于JAVA签名校验使用示例教程
您可以从这里了解更多阿里云 SDK 的信息,前面系列博客也结合各种语言的SDK进行了实现。本文以DetectFace API为示例,演示实际基于签名校验的实现。
152 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
23932 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14090 0
阿里云新版人脸识别基于JAVA签名校验使用示例教程
阿里云会对每个访问的请求进行身份验证,所以无论使用 HTTP 还是 HTTPS 协议提交请求,都需要在请求中包含签名(Signature)信息。通过使用 Access Key ID 和 Access Key Secret 进行对称加密的方法来验证请求的发送者身份。
2081 0
+关注
红目香薰
历经于PRC、Blockchain Technoloogy、E.项目历练。 曾担任过企业的CTO、DBA、PM、OD等职位,较高的代码严谨度,为多个上亿PV的App后端提效20%至40%。 对软件的商业OD与UE有一定的见解,曾帮助企业提高120%的年度效益。
928
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载