什么是SQL注入、XSS和CSRF?-mysql教程-学派吧

什么是SQL注入、XSS和CSRF?本篇文章就来带大家了解一下SQL注入、XSS和CSRF,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

SQL注入

SQL注入是属于注入式攻击,这种攻击是因为在项目中没有将代码与数据(比如用户敏感数据)隔离,在读取数据的时候,错误的将数据作为代码的一部分执行而导致的。

典型的例子就是当对SQL语句进行字符串拼接的时候,直接使用未转义的用户输入内容作为变量。这时,只要在sql语句的中间做修改,比如加上drop、delete等关键字,执行之后后果不堪设想。

说到这里,那么该怎么处理这种情况呢?三个方面:

1、过滤用户输入参数中的特殊字符,降低风险。

2、禁止通过字符串拼接sql语句,要严格使用参数绑定来传入参数。

3、合理使用数据库框架提供的机制。就比如Mybatis提供的传入参数的方式 #{},禁止使用${},后者相当于是字符串拼接sql,要使用参数化的语句。

总结下,就是要正确使用参数化绑定sql变量。

XSS

XSS:跨站脚本攻击,Cross-Site Scripting,为了和前端的css避免重名,简称为XSS,是指通过技术手段,向正常用户请求的HTML页面中插入恶意脚本,执行。

这种攻击主要是用于信息窃取和破坏等目的。比如2011年的微博XSS攻击事件,攻击者利用了微博发布功能中未对action-data漏洞做有效的过滤,在发布微博信息的时候带上了包含攻击脚本的URL,用户访问就会加载恶意脚本,导致大量用户被攻击。

关于防范XSS上,主要就是通过对用户输入的数据做过滤或者是转义,可以使用框架提供的工具类HtmlUtil。另外前端在浏览器展示数据的时候,要使用安全的API展示数据。比如使用innerText而不是innerHTML。

CSRF

跨站请求伪造,在用户并不知情的情况下,冒充用户发送请求,在当前已经登录的web网站上执行恶意操作,比如恶意发帖,修改密码等。

大致来看,与XSS有重合的地方,前者是黑客盗用用户浏览器中的登录信息,冒充用户去执行操作。后者是在正常用户请求的HTML中放入恶意代码,XSS问题出在用户数据没有转义,过滤;CSRF问题出现在HTTP接口没有防范不守信用的调用。

防范CSRF的漏洞方式:

1、CSRF Token验证,利用浏览器的同源限制,在HTTP接口执行前验证Cookie中的Token,验证通过才会继续执行请求。

2、人机交互,例如短信验证码、界面的滑块。

相关视频教程推荐:《MySQL教程》

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上就是什么是SQL注入、XSS和CSRF?的详细内容,更多请关注php中文网其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/data/3455.html

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年4月9日 下午8:57
下一篇 2019年4月9日 下午8:57

相关推荐

  • MongoDB提升性能的方法教程-mysql教程-学派吧

    本篇文章给大家带来的内容是关于MongoDB提升性能的方法总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 MongoDB 是高性能数据,但是在使用的过程中,大家偶尔还会碰到一些性能问题。MongoDB和其它关系型数据库相比,例如 SQLServer 、MySQL 、Oracle相比来说,相对较新,很多人对其不是很熟悉,所以很多开发、DB…

    数据库运维 2018年11月24日
    3.1K00
  • Mysql中utf8_unicode_ci、utf8_general_ci有什么区别?-mysql教程-学派吧

    本篇文章给大家带来的内容是关于Mysql中utf8_unicode_ci、utf8_general_ci有什么区别?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Mysql中utf8_general_ci与utf8_unicode_ci有什么区别呢?在编程语言中,通常用unicode对中文字符做处理,防止出现乱码,那么在MySQL里,为什么…

    数据库运维 2019年4月9日
    3.1K00
  • mongodb查询表字段、进行字符串截取以及更新的方法-mysql教程-学派吧

    本篇文章给大家带来的内容是关于mongodb查询表字段、进行字符串截取以及更新的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 update() 方法用于更新已存在的文档。语法格式如下: db.collection.update( <query>, <update>, { upsert: <boolean&…

    数据库运维 2019年4月9日
    3.2K00
  • 数据库中的Schema是什么?-mysql教程-

    数据库中schema是数据库对象集合,它包含了表,视图等多种对象。schema就像是用户名,当访问数据表时未指明属于哪个schema,系统就会自动的加上缺省的schema 我们在学习数据库中会碰到一个模糊的概念,它就是Schema。很多人对他都不是很了解,今天将要在文章中为大家详细介绍这个概念,具有一定的参考作用,希望对大家有所帮助。 【推荐课程:数据库教程…

    数据库运维 2019年4月24日
    5.5K00
  • Linux系统MySQL备份的导入导出的具体操作教程-学派吧

    问题描述 如何对 ECS Linux 系统中的 MySQL 进行备份的导入和导出。 处理办法 MySQL 备份的导出 MySQL 备份的导入 MySQL 备份的导出 注意: 如果您使用的是帮助中心的一键环境配置,那么 MySQL 的安装目录是 /alidata/server/mysql。 如果您将 MySQL 安装到其他目录,您需要输入您 MySQL 完整的…

    数据库运维 2019年1月1日
    2.4K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部