当前位置: 首页 > news >正文

廊坊seo软件昆明seo网站管理

廊坊seo软件,昆明seo网站管理,哪些网站可以做平面设计,松江建设管理中心网站什么是 SQL 注入 SQL 注入是一种常见的数据库攻击手段, SQL 注入漏洞也是网络世界中最普遍的漏洞之一。 SQL 注入就是恶意用户通过在表单中填写包含 SQL 关键字的数据来使数据库执行非常规代码的过程。 这个问题的来源就是, SQL 数据库的操作是通过 SQ…

什么是 SQL 注入

SQL 注入是一种常见的数据库攻击手段, SQL 注入漏洞也是网络世界中最普遍的漏洞之一。 SQL 注入就是恶意用户通过在表单中填写包含 SQL 关键字的数据来使数据库执行非常规代码的过程。

这个问题的来源就是, SQL 数据库的操作是通过 SQL 命令执行的,无论是执行代码还是数据项都必须卸载 SQL 语句中,这就导致如果我们在数据项中加入了某些 SQL 语句关键字(比如 SELECT,DROP等等),这些关键字就很可能在数据库写入或读取数据时得到执行。

SQL 注入需要满足的条件

  1. 参数用户可控:前端传给后端的参数用户可控
  2. 参数代入数据库查询:传入的参数拼接到 SQL 语句中,且代入数据库中查询
id := "031904102" + " AND 1=1 "
where := "stu_number=" + id 
err := DB.Model(&User{}).Where(where).Find(&user).Error
if err != nil {fmt.Println(err)
}

如果使用上述代码的话进行字符串的拼接,就会导致 sql 注入的发生,本来是查询一条语句的,但是由于后面注入了 1 = 1 所以把数据库中的信息全部查出来了。

解决方法:使用占位符

user2 := []User{}
id := "156315775 ; drop table notice;"
err = DB.Model(&User{}).Where("stu_number=?", id).Find(&user2).Error
if err != nil {fmt.Println(err)
}

最终的语句为:

SELECT * FROM `user` WHERE stu_number=031904102; drop table notice;

这条语句在 sql 中是可以执行的,但是在 gorm 框架中是不能执行的。

总结

避免在操作数据库的时候使用字符串直接拼接的方式进行 SQL 查询。

http://www.dinnco.com/news/27450.html

相关文章:

  • 想注册一个做网站的公司网站服务器速度对seo有什么影响
  • 免费做h5的网站网站排名优化软件联系方式
  • hbuilder 做网站国际新闻今日头条
  • 郑州网站建设电话网站建设哪家好公司
  • 阿里云官网入口seo外贸网站制作
  • 网站建设维护 天博网络下载百度语音导航地图
  • b2c电商网站开发百度自动搜索关键词软件
  • 动漫设计与制作学费北京优化互联网公司
  • 建设网站的意义收录优美图片崩了
  • 网站目录 index营销型网站建设哪家好
  • 长沙开福区专业制作网站汕头seo不错
  • 游戏平台网站制作成都关键词优化报价
  • 专门做网站开发的公司百度信息流推广教程
  • 大石桥做网站软文编辑器
  • 自己做电影网站有没有钱赚seo怎么弄
  • 移动端模板网站建设怎么创建网站?
  • 西安免费做网站哪家好网络营销的主要推广方式
  • 企业的网站特点发帖百度秒收录网站分享
  • 男女做污视频网站seo是什么职位简称
  • 网站开发论文说明网络营销策略包括
  • 肥西网站建设成都本地推广平台
  • 网站服务器是指什么如何制作网页广告
  • 做网站登录的需求分析刚刚济南发通知
  • 符合网络营销的网站关键词搜索查询
  • 学网站建设前途企业网站设计与实现论文
  • 专业网站建设搭建网络营销有什么特点
  • 做兼职网站哪个靠谱加强服务保障满足群众急需m
  • 免费建立手机网站营销型网站和普通网站
  • 宁波专业网站制作服务网络营销和电子商务区别
  • wordpress incategory网站排名优化多少钱