什么是XSS攻击?什么是CSRF攻击?什么是sql注入?如何防范

来源:程序思维浏览:1570次
经过多年的工作和站长圈子,我也对安全性有所了解。很多同学拿到安全测试报告以后一脸懵逼的不知道这些缩写字母都是什么意思。如何解决它,今天我向无安全基础的同学讲一讲这三类攻击是如何形成的。在了解了他的原理后,就可以进行防御了。由于每个同学使用的编程语言和框架都有很大不同,本文主要介绍了攻击形成的原理和防御方法,因此具体代码非常少,学生可以根据自己的实际情况编写代码。

什么是XSS攻击?什么是CSRF攻击?什么是sql注入?如何防范

什么是CSRF攻击?

让我来谈谈这个词:CSRF(Cross-site request forgery)跨站请求伪造,这个词还是不了解,不用担心,我们先讲一个故事,一个真实的故事。那是在2009年,一名黑客利用CSRF通过Gmail的成功攻击成功窃取了好莱坞明星Vanessa Hudgens的邮箱。攻击很简单,她给她发了一封电子邮件,内容是图片,但这张照片有点特别。它是这样写的:当用户点击邮件加载图片时,他实际上访问了这样的链接:https://mail.google.com/mail?ui = 2&fw = true&fwe = my @ email.com,这个链接的功能是Gmail设置邮件转发,因此目标邮箱中的所有邮件都被转发到黑客指定的邮箱。有很多这样的例子。只需构造正确的Get链接,让浏览器发送Get请求。由于用户已经登录,因此它将携带正确的cookie并直接访问链接以实现相关功能。

在了解了原理之后,如何破解黑客的攻击?解决方案是向表单添加字段标记。黑客无法猜出已经改变的令牌,所以即使你添加一个UUID令牌,将它保存到服务器会话,黑客也不可能猜出随机令牌,就无法构造出能实现功能的链接了。

什么是XSS攻击?

首先,这个词实际上是CSS(Cross Site Scripting),但它与CSS同名。所以名字是XSS。跨站点脚本攻击类似于上面提到的CSRF。实际上,原则是将一段JavaScript代码注入网页。然后当其他用户访问该页面时,他们将运行黑客编写的JS代码来实现一些帐户控制。经典故事是:2011年6月28日,新浪微博被XSS攻击,大量用户自动转发微博、私信。自动关注用户,大量用户被莫名其妙地控制。因为可以使用JS代码代替用户单击按钮发送请求,所以损坏非常大。反射XSS攻击:搜索模块越常见,例如:https://www.neilren.com/Search?wd =攻击,当搜索链接正常时,应将wd参数传递给搜索词,并且然后在页面上显示当前搜索词,您可以使用此门户传递一些不同的数据,例如,我将其更改为:https://www.neilren.com/Search?wd =,页面将是使用JS代码注入类似地,也可以在没有用户感知的情况下在站点中插入其他站点的js文件,从而实现诸如控制用户和窃取cookie之类的操作,但是这样的链接必须由用户点击,并且将不要让所有用户都被招募。

存储XSS攻击:最后一次反射XSS攻击只能攻击点击该链接的某些用户。存储类型XSS可能会对所有用户带来攻击。经典的是用户签名栏。这个地方允许用户自定义。内容将存储在数据库中。当其他用户浏览他时,它将从数据库加载。如果恶意用户在其签名栏中注入了js参考,那么浏览他的所有人都将被Js控制,存储类型XSS的危险可能危及整个站的用户,非常危险。



在了解了原理之后,如何破解黑客的攻击?有很多方法,例如:关键字判断当有一个关键字如脚本、src来代替损坏;返回内容时进行转码,转码尖括号采用Unicode编码格式,如下面的截图:

xss攻击

什么是SQL注入攻击?

SQL注入是一个非常古老的漏洞,现在并不常见。经验不足的人可以避免被SQL注入的风险。让我们首先看一个经典案例:用户经常在登录时写字。

$sql = "select * from user where username = '" + userName "'' and passwd = '" +userPassword + "'";

在正常情况下会说明:select * from user where username ='admin' and passwd ='mima',但不幸的是黑客也会编写SQL语句,黑客在输入时输入用户名和密码:user named admin' or 1 = 1  - ,密码为空,此时拼接出的SQL是:从用户中选择*,其中username ='admin' or 1 = 1  - ' and passwd =''

你看到了什么? 1 = 1总是成立,后者 - 将注释掉以下SQL,admin用户将成功登录,原理就是这么简单。

在了解了原理之后,如何破解黑客的注入攻击?最常见的是在业务逻辑层中执行关键字检查。如果包含SQL的关键字,例如 *、or、select、delete等等关键字就进行替换;最有效的仍然是使用SQL变量进行查询,避免使用字符串来拼接SQL字符串。
精品好课
最新完整React视频教程从入门到精通纯干货纯实战
React是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习React高薪就...
Vue2+Vue3+ES6+TS+Uni-app开发微信小程序从入门到实战视频教程
2021年最新Vue2+Vue3+ES6+TypeScript和uni-app开发微信小程序从入门到实战视频教程,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己...
最新完整React+VUE视频教程从入门到精,企业级实战项目
React和VUE是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React和VUE并应用到实战,教你如何解决内存泄漏,常用库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习Re...
jQuery视频教程从入门到精通
jquery视频教程从入门到精通,课程主要包含:jquery选择器、jquery事件、jquery文档操作、动画、Ajax、jquery插件的制作、jquery下拉无限加载插件的制作等等......
VUE2+VUE3视频教程从入门到精通(全网最全的Vue课程)
VUE是目前最火的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE+ES6并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就...
HTML5基础入门视频教程易学必会
HTML5基础入门视频教程,教学思路清晰,简单易学必会。适合人群:创业者,只要会打字,对互联网编程感兴趣都可以学。课程概述:该课程主要讲解HTML(学习HTML5的必备基础语言)、CSS3、Javascript(学习...
HTML5视频播放器video开发教程
适用人群1、有html基础2、有css基础3、有javascript基础课程概述手把手教你如何开发属于自己的HTML5视频播放器,利用mp4转成m3u8格式的视频,并在移动端和PC端进行播放支持m3u8直播格式,兼容...
React实战视频教程仿京东移动端电商
React是前端最火的框架之一,就业薪资很高,本课程教您如何快速学会React并应用到实战,对正在工作当中或打算学习React高薪就业的你来说,那么这门课程便是你手中的葵花宝典。
收藏
扫一扫关注我们