什么是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

相关推荐

  • MySQL性能优化的一些经验-mysql教程-

    为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使…

    数据库运维 2019年4月24日
    3.4K00
  • mysql索引类型有哪些-mysql教程-学派吧

    mysql中索引类型有:最基本的没有限制的普通索引,索引列的值必须唯一的唯一索引,主键索引,多个字段上创建的组合索引以及用来查找文本中的关键字的全文索引 【推荐课程:MySQL教程】 MySQL中的索引类型有以下几种 普通索引 唯一索引 主键索引 组合索引 全文索引 1、普通索引 是最基本的索引,它没有任何限制。它有以下几种创建方式: 直接创建索引 CREA…

    2019年4月9日
    2.3K00
  • 人工智能创业的两种形态三大规律

    我们需要的是人性化、情感化、品质化的产品和服务。

    2017年4月17日
    1.8K21
  • mysql禁止外部访问解决方案-mysql教程

    本文主要讲述了当mysql禁止外部访问的解决方案,具有一定的收藏价值,有需要的朋友了解一下吧。 1.在端口已经开放的情况下,ubuntu mysql 3306允许远程访问vim /etc/mysql/mysql.conf.d/mysqld.cnf注释#bind-address = 127.0.0.1 2.给用户授权允许远程访问:grant all privi…

    数据库运维 2019年4月24日
    2.9K00
  • 宝塔如何安装配置Redis数据库

    前言 今天小编主要来说下如何简单快捷的安装Redis-1:先搞一台服务器了。这是必不可少的。centos系统 (建议7.2)国内外都可以、建议www.sq9.cn 价格优惠不小 下面开始 2:安装好系统、进行SSH连接、安装宝塔面板、有数据盘的别忘记挂载数据库盘 (centos挂载教程]) 然后进行环境搭配、小编用的是apache+php7.1+mysql5…

    2018年9月14日
    8.6K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

添加微信
添加微信
分享本页
返回顶部
---------官方优惠叠加渠道折扣:通过我们购买腾讯云/阿里云,价格更低,服务更优。更有专业配置指导与服务。微信同步:18838889666----