GO_sql注入
Posted yzg-14
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO_sql注入相关的知识,希望对你有一定的参考价值。
我们任何时候都不应该自己拼接SQL语句!
sqlInjectDemo("xxx‘ or 1=1#") sqlInjectDemo("xxx‘ union select * from user #") sqlInjectDemo("xxx‘ and (select count(*) from user) <10 #")
package main import ( "fmt" "github.com/jmoiron/sqlx" _ "github.com/go-sql-driver/mysql" // init() ) // Go连接MySQL示例 var db *sqlx.DB // 是一个连接池对象 func initDB() (err error) { // 数据库信息 // 用户名:密码@tcp(ip:端口)/数据库的名字 dsn := "root:root@tcp(127.0.0.1:3306)/sql_test" // 连接数据库 db, err = sqlx.Connect("mysql", dsn) if err != nil { return } db.SetMaxOpenConns(10) // 设置数据库连接池的最大连接数 db.SetMaxIdleConns(5) // 设置最大空闲连接数 return } type user struct { ID int Name string Age int } // SQL注入 // sql注入示例 func sqlInjectDemo(name string) { // 自己拼接SQL语句的字符串 sqlStr := fmt.Sprintf("select id, name, age from user where name=‘%s‘", name) fmt.Printf("SQL:%s ", sqlStr) var users []user err := db.Select(&users, sqlStr) if err != nil { fmt.Printf("exec failed, err:%v ", err) return } for _, u := range users { fmt.Printf("user:%#v ", u) } } func main() { err := initDB() if err != nil { fmt.Printf("init DB failed, err:%v ", err) return } // SQL注入的几种示例 // sqlInjectDemo("xxx‘ or 1=1 #") sqlInjectDemo("xxx‘ union select * from user #") }
以上是关于GO_sql注入的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段