一个网站,不管多么的帅气,多么的风骚,如果你不安全,那始终都是一个弟弟啊~

今天又看了下XSS和CSRF攻击的文章,我也想发点什么普及下大家的安全意识,毕竟作为一名拥有伟大梦想的程序员,基本的安全意识还是一定要有的,话不多说,跑起来~

   本文参考的文章地址:https://juejin.im/post/59dc2b7a6fb9a0451869ae3a

一、XSS攻击跨站脚本攻击(Cross Site Scripting),一般是在输入的时候,攻击者输入脚本,来进行攻击。

案例:

一个正常的输入表单控件
输入 :
<script>
while (true) {
alert('我弹弹弹弹弹弹弹~~~~~')
}
</script>

这只是一个最善良的恶作剧而已,试想一下,攻击者输入一些盗取cookie的脚本或者一些别的恶意脚本,是不是很随意的就可以去拿一些东西,想干什么我就干什么

预防方法:

1. 在cookie中设置httpOnly属性后,js将无法读取到cookie信息,可以防止XSS攻击盗取cookie
// koa
ctx.cookies.set(name, value, {
httpOnly: true // 默认为 true
})
2. 使用HtmlEncode,将一些标签转义
例如将<,>转换成&lt;,&gt;的写法来表示,那么输入的<script>标签就会被解析成&lt;script&gt;
3. JavaScriptEncode,给一些字符加上反斜杠
例如将\转换成\\,将\n转换成\\n,将"转换成\" 
 

二、CSRF:跨站点请求伪造(Cross-Site Request Forgeries),也就是冒充用户请求,用户并不知情,然后搞一些事情

话不多说,先放一张偷来的图

案例:

比如某网站的转账操作
受害者张三给李四转账100,
通过对银行的网站发起请求 bank.example/transfer?ac…
通常情况下,该请求发出后,服务器端会检查 session 是否合法,并且张三已经登录成功,
黑客王五可以自己给银行发送一个请求 bank.example/transfer?ac… ,但是这个请求来自王五,而不是张三,他并不能通过安全认证。他需要张三的 session 。
王五自己做了一个网站,放入如下代码 bank.example/transfer?ac…
用各种方式诱使张三点击自己的网站。
张三登录了银行的网站没有退出,访问了黑客王五的网站,上述的 url 就会向银行发起请求。
如果session没有过期,这时悲剧就发生了,张三的账户里少了1000。

 

预防方法:

1. 验证码的方式,也就是让用户和网站进行交互才能完成一些动作(请求)
缺点:用户体验差
2. 相对get请求来说,尽量使用post请求(post请求也只是相对安全一点)
3. token验证
第一步:后端随机产生一个 token,把这个token 保存到 session 状态中;同时后端把这个token 交给前端页面;
第二步:前端页面提交请求时,把 token 加入到请求数据或者头信息中,一起传给后端;
后端验证前端传来的 token 与 session 是否一致,一致则合法,否则是非法请求。

写在最后

XSS 是内容没有做过滤处理,导致浏览器将攻击者的输入当代码直接运行了。
CSRF 则是因为浏览器在发送 HTTP 请求的时候会自动携带 cookie,而一般网站的 session 都存在 cookie里面

写在最最后

若不是你突然闯进我生活,我怎会把死守的寂寞放任了~

因为最近有在抖音听绿色这首歌,所以这次就用绿色包围着你们好了。。。。。。。。。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

XSS攻击 && CSRF攻击 基础理解的更多相关文章

  1. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击

    第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...

  2. Django是如何防止注入攻击-XSS攻击-CSRF攻击

    注入攻击-XSS攻击-CSRF攻击介绍请访问:https://www.cnblogs.com/hwnzy/p/11219475.html Django防止注入攻击 Django提供一个抽象的模型层来组 ...

  3. XSS 和 CSRF 攻击

    web安全中有很多种攻击手段,除了SQL注入外,比较常见的还有 XSS 和 CSRF等 一.XSS(Cross Site Scripting)跨站脚本 XSS其实就是Html的注入问题,攻击者的输入没 ...

  4. xss和csrf攻击

    xss(cross site scripting)是一种最常用的网站攻击方式. 一.Html的实体编码 举个栗子:用户在评论区输入评论信息,然后再评论区显示.大概是这个样子: <span> ...

  5. XSS攻击&SQL注入攻击&CSRF攻击?

    - XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式.跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意 ...

  6. XSS攻击 CSRF攻击

    XSS攻击: 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆, 故将跨站脚本攻击缩写为XSS.恶意攻击者 ...

  7. XSS与CSRF攻击

    一.XSS Cross Site Script,跨站脚本攻击.是指攻击者在网站上注入恶意客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一 ...

  8. 前端安全之XSS和csrf攻击

    1.Csrf攻击概念: csrf攻击(Cross-site request forgery):跨站请求伪造; 2.Csrf攻击原理: 用户是网站A的注册用户,且登录进去,于是网站A就给用户下发cook ...

  9. 注入攻击-XSS攻击-CSRF攻击

    1.注入攻击 注入攻击包括系统命令注入,SQL注入,NoSQL注入,ORM注入等 1.1攻击原理 在编写SQL语句时,如果直接将用户传入的数据作为参数使用字符串拼接的方式插入到SQL查询中,那么攻击者 ...

随机推荐

  1. 深入理解http协议的特点

    HTTP 是一个属于应用层的面向对象的协议,HTTP 协议一共有五大特点:1.支持客户/服务器模式:2.简单快速:3.灵活:4.无连接:5.无状态. 无连接 无连接的含义是限制每次连接只处理一个请求. ...

  2. 记开发个人图书收藏清单小程序开发(四)DB设计

    早上起来,又改动了一下: 主要是,将非常用信息全部拆分出来,让Table尽量的小,小到不能继续拆分了,这样区分DB逻辑.增加了FileBank存储Book的封面图片,统一管理图片资源. 新添加的Typ ...

  3. IIS 7 启用 gzip 静态压缩 压缩js和css文件

    搞了很久,不如nginx好弄,不知道怎么修改压缩比,也不知道怎么压缩的规则是啥(管理器上没有写),不过反正出来了,一个js文件900多K变成了100多K 1.在web.config文件里面加上: &l ...

  4. Session跨域、Session共享、Mode=StateSever方式解决问题

    前言 很多童鞋在工作或面试的过程中,也许会遇到这样的问题,使用Session,怎样让多个站点实现Session共享的问题,也就是在A站点登录,那么在B站点就不需要重新登录了那?如果采用Session保 ...

  5. RESTful架构及SOA架构简单解析

    1.RESTful架构 本人也是刚接触ASP.NET开发,以下为自己简单的理解,并做了一些记录,表述不当或者错误之处还请指正,在此谢过. 首先,REST(REpresentational State  ...

  6. 微软操作系统 Windows Server 2012 R2 官方原版镜像

    微软操作系统 Windows Server 2012 R2 官方原版镜像 Windows Server 2012 R2 是由微软公司(Microsoft)设计开发的新一代的服务器专属操作系统,其核心版 ...

  7. ptyhon class定制方法

      __iter__ 如果一个类想被用于for ... in循环.须实现一个__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调用该迭代对象的__next__() ...

  8. Yii正则验证

    required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...

  9. easyui学习笔记4—panel的实现

    这篇看看easyui是怎么实现panel的,就是类似一个容器,里面可以装具体内容或者其他的easyui控件. 1.这里先看看引用的资源文件 <link rel="stylesheet& ...

  10. webpack之react开发前准备

    今天抽出空来,翻了翻webpack之react的书籍,看到刚出的es6语法,貌似是简单了不少,但是兼容性确实不容乐观,如果实在要用那也不是不可以的,首先就跟随我来看下这个插件吧: Babel:这个插件 ...