golang 正则过滤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
}

  

posted @ 2024-01-31 17:31  tochenwei  阅读(105)  评论(0编辑  收藏  举报