防范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();
    }
 
}

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

相关文章
|
6月前
|
SQL 存储 运维
[ 云原生 | Docker ] 构建高可用性的 SQL Server:Docker 容器下的主从同步实现指南
在当今信息化的时代,数据的安全性和稳定性显得尤为重要。数据库是许多企业和组织存储和管理数据的核心,因此如何保证数据库的高可用性和数据的同步性是一个非常关键的问题。而基于主从同步的技术可以有效地解决这个问题。本文将介绍如何在 Docker 环境下搭建 MS SQL Server 的主从同步,帮助读者了解主从同步的原理和实现方式,进而提高数据的可靠性和稳定性。
104 1
[ 云原生 | Docker ] 构建高可用性的 SQL Server:Docker 容器下的主从同步实现指南
|
SQL 存储 负载均衡
SQL Server 高可用性(八)负载平衡
高可用与负载平衡是两种不同的技术,却经常被混淆。
415 1
SQL Server 高可用性(八)负载平衡
|
SQL 存储 数据采集
SQL Server 高可用性(七)复制
复制是一个开发范畴的技术,但是也可以像日志传送一样作为高可用技术的一个后备选项。
SQL Server 高可用性(七)复制
|
SQL BI 数据库
SQL Server 高可用性(六)日志传送
日志传送是非常古老的高可用性技术。
101 0
SQL Server 高可用性(六)日志传送
|
SQL 监控 安全
SQL Server 高可用性(五)数据库镜像
数据库镜像是SQL Server 2005 sp1正式引入的一项数据库级的高可用性技术。
240 1
SQL Server 高可用性(五)数据库镜像
|
SQL 数据库
SQL Server 高可用性(四)故障转移
SQL Server 的高可用通过故障转移手段使用户端几乎没有察觉的情况下将服务交由下一个节点接管。
340 0
SQL Server 高可用性(四)故障转移
|
SQL 数据库
SQL Server 高可用性(三)共享磁盘
SQL Server 高可用性(三)共享磁盘
319 0
SQL Server 高可用性(三)共享磁盘
|
SQL 存储 负载均衡
SQL Server 高可用性(二)群集与侦听器
SQL Server 高可用性(二)群集与侦听器
423 0
SQL Server 高可用性(二)群集与侦听器
|
SQL 存储 负载均衡
SQL Server 高可用性(一)AlwaysOn 技术
SQL Server 高可用性(一)AlwaysOn 技术
567 1
SQL Server 高可用性(一)AlwaysOn 技术
推荐文章
更多