首页 > 数据库 >golang 正则过滤sql注入的方法

golang 正则过滤sql注入的方法

时间:2024-01-31 17:48:28浏览次数:36  
标签:err into golang 正则 过滤 str sql

该方法返回的是一个bool值

package main

import "regexp"
import "fmt"
// 正则过滤sql注入的方法
// 参数 : 要匹配的语句
func FilteredSQLInject(to_match_str string) bool {
    //过滤 ‘
    //ORACLE 注解 --  /**/
    //关键字过滤 update ,delete
    // 正则的字符串, 不能用 " " 因为" "里面的内容会转义,?i表示不区分大小写
    str := `(?i)(?:')|(?:--)|(?:#)|(/\\*(?:.|[\\n\\r])*?\\*/)|(\b(select|update|and|or|delete|insert|trancate|char|chr|into|substr|ascii|declare|exec|count|master|into|drop|execute)\b)`
    re, err := regexp.Compile(str)
    if err != nil {
        panic(err.Error())
        return false
    }
    return re.MatchString(to_match_str)
}

func main() {
    fmt.Println(FilteredSQLInject("Hello world!")) // false
}

  

标签:err,into,golang,正则,过滤,str,sql
From: https://www.cnblogs.com/tochw/p/17999762

相关文章

  • MySQL介绍
    数据库的由来和基本概念什么是数据库?|Oracle中国【一】数据的发展史早期未出现互联网前,每个人都只可以在本地存储,且存储的数据格式都是根据每个人的需要自由定义的出现网络后,可以在局域网内进行多台计算机的数据共享,而这时,数据的格式只能由人为约束,约定俗成好一套数据存......
  • Mysql中存储引擎InnoDB,MyISAM,MEMORY比较
    Mysql中存储引擎InnoDB,MyISAM,MEMORY比较showENGINES--查看数据库支持的搜索引擎ENGINE=InnoDB--使用的InnoDB引擎CREATETABLE`user1`(`id`bigint(20)NOTNULLDEFAULT'0',`name`varchar(255)DEFAULTNULL,`age`int(11)DEFAULTNULL,`sex`varchar(255)......
  • golang中 UTF-8 和GBK格式的转换
    funcmain(){ str:="测试" utf8By:=[]byte(str) gbkBy,_:=Utf8ToGbk(utf8By) //直接打印用string转类型的gkb字节数组,会乱码 fmt.Println("打印GBK",string(gbkBy)) fmt.Println("UTF8字节长度:",len(utf8By),"GBK字节长度:",len(gbkBy)) ......
  • MYSQL日志
    要开启MySQL的二进制日志(binlog),需按照以下步骤进行操作:1.打开MySQL配置文件:首先,找到MySQL的配置文件my.cnf(或my.ini,视操作系统而定)。2.找到并修改binlog相关配置:在配置文件中找到以下几个参数,如果没有则手动添加:[mysqld]log-bin=mysql-bin#开启binlog,设置binlog......
  • MySQL大表分页查询的坑以及解决方案
    最近在做一个需求,需求内容中有一个功能点是查询指定用户标签里的用户id,这里做了分页查询,分页查询是用mysql的LIMIT设置offset和size值来实现的。在程序执行过程中会发现,如果查询的用户标签数据量很大时会出现慢查询告警,这里已经对mysql表的标签名称和用户id字段都加了索引,并且limi......
  • golang 使用hex包,转换文件的16进制字符、16进制字节数组
    某些特殊情况下需要根据文件的16进制转换成字符在linux系统用vim保存一个文件,写入两行内容这是测试A这是测试B用linux的xxd命令输出文件的16进制字节数组xxd-g1-it.txtunsignedchart_txt[]={0xe8,0xbf,0x99,0xe6,0x98,0xaf,0xe6,0xb5,0x8b,0x......
  • 数据库研发人员必看的MySQL 8.0新特性
    本文汇总了MySQL8.0面向开发的新特性,总共有12个新特性,有想快速了解8.0新特性的朋友,可以看一下哈文章目录:1.公用表达式支持-CTE2.窗口函数3.表达式作为默认值:4.CHECK支持5.隐藏列-MySQL8.0.236.隐藏索引、降序索引、函数索引(MySQL-8.0.19)7.VALUES语法8.INTERSECT和EXC......
  • PLSQL重命名表的方法和报错解决方法ORA-01765 ORA-14047
    重命名办法在PLSQL中重命名表,在表上点右健选重命名。 报错ORA-01765若不是本用户,会报错:ORA-01765:不允许指定表的所有者名称。 解决方法,使用RENAME命令在PLSQL执行不会报错。示例:ALTERTABLEuser1.log_tablenameRENAMETOlog_tablename_back20240131; 报错ORA-14047......
  • mysql导入数据的问题
    简介:在我们使用高版本mysql的时候,比如mysql8,到mysql5.7恢复就报错,比如下面这样的错误:在我们使用高版本mysql的时候,比如mysql8,到mysql5.7恢复就报错,比如下面这样的错误:[Err]1273-Unknowncollation:'utf8mb4_0900_ai_ci'这就是字符集编码的问题,但是我将数据库的编码改成了......
  • Prometheus+Grafana+Jmeter监控服务器资源及中间件(Prometheus & node_exporter &mysq
    一、Prometheus&node_exporter&Grafana的原理Prometheus:Prometheus是一个开源的系统监控和报警工具包,它负责定时从各种数据源(如NodeExporter)中获取指标数据,并将其存储在自己的时间序列数据库中。Prometheus支持灵活的查询和报警功能,用户可以方便地对这些指标数据进行查询......