什么是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 MID()函数的用法详解(代码示例)-mysql教程-学派吧

    在MySQL中,MID()函数返回从指定位置开始的子字符串。 MID()和SUBSTR()都是SUBSTRING()的同义词。 基本语法是这样的: MID(str,pos,len) 这里,str是字符串,pos是起始子字符串的位置,len是一个可选参数,它决定从起始位置返回的字符数。 这个函数有几种不同的使用方法,所以完整的语法看起来是这样的: MID(st…

    数据库运维 2019年4月9日
    3.2K00
  • MySQL存储过程的理解-mysql教程-学派吧

    MySQL中的存储过程指的是存储在数据库中的SQL语句集合,当创建好存储过程后在运行时提供所需参数,存储过程就可以以代码指定的方式使用参数执行并返回值 在MySQL中提供了创建存储过程的能力。存储过程是MySQL以及其他数据库管理系统中的强大功能。接下来在文章中将为大家具体介绍MySQL中的存储过程,具有一定的参考作用,希望对大家有所帮助。 【推荐课程:My…

    2019年4月9日
    2.3K00
  • mysql更新语句怎么写?-mysql教程-学派吧

    MySQL更新语句也就是MySQL中的update语句,当我们需要更新或者修改表中的数据时,就会使用这个update语句,下面我们就来看一下mysql更新语句的具体写法。 MySQL中update语句用于更新表中的现有数据。亦可用UPDATE语句来更改表中单个行,一组行或所有行的列值。 MySQL中UPDATE语句的语法: 单表 UPDATE [LOW_PR…

    2019年4月9日
    2.4K00
  • mysql数据库无法启动-进行数据备份搬迁的教程

    今天看到一个案例:数据库服务无法启动,也导致了不能备份数据库、所以只能使用了笨方法、直接打包DATA目录 我们的服务器是宝塔环境、  直接备份 /www/server/data 这个目录备份 下载下来  在新的服务器上安装好环境、把data压缩包上传上去、进行解压覆盖、注意的是 版本最好一样。 重启一下数据库、 [root@VM_166_22_centos …

    2019年4月27日
    5.4K00
  • 在Navicat中如何设置数据库的操作权限教程-navicat-学派

    为了减少开发人员的错误操作,可以设置权限来进行控制,通过为MySQL服务器建立不同的用户,并为用户赋予不同的权限,来达到目标。这篇文章就给大家介绍怎么设置Navicat数据库的操作权限,需要的朋友可以参考一下。1 以下内容为详细设置步骤。 一、新建用户 1、用Navicat连接本地服务器(如果之前已连接,请打开连接) 2、点击菜单栏 –> 用户,如图所…

    数据库运维 2018年11月26日
    3.6K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

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