• 1
  • 1
分享
  • 【安全测试】csrf攻击的防范
  • lee 2022-07-18 13:37:05 字数 661 阅读 11237 收藏 1

之前做过一个项目,我们公司内部测试完功能之后,还会拿着项目去竞标,在这个过程中,举办方会拿我们的软件找一些专业的公司做检测,其中有一项就是安全漏洞扫描。其实扫描出来的漏洞,用户平时使用中基本很小的概率碰到,但是举办方会拿着这个说事,要求必须整改。这些安全漏洞中最常见的是csrf跨站攻击,修改起来其实也不是特别麻烦,那我们主要就看下平时测试的时候应该怎么注意才能避免这个问题。

【csrf攻击的原理】:

用户登录浏览器,打开网页A,输入登录信息并操作网站,在未退出登录的情况下,另外开启一个tabB,访问网站进行操作,由于A的登录信息(cookie)已经存储在浏览器中,此时网页B接收到用户请求后,如果是恶意网站,很可能会返回一些攻击性代码,并发出一个请求要求访问原网站A,此时就可能恶意篡改数据,恶意删除数据,恶意注入数据等。

【关于csrf攻击的测试方法】:

对于测试而言,其实测试方法很简单,第一种方法是打开浏览器登录,未退出的情况下再开启另一个tab,看下页面有没有跳转到登录页面,如果还是保留已登录状态,那么就是有问题的。另外一种方法是抓包,抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,并且返回200ok,那么可以大致确定系统存在安全漏洞。

【关于软件的修改方法】:

目前比较常用的方法是,在请求链接中加入加密的token并进行校验,每次打开网页登录后都是不一样的链接,同时服务器端加一个拦截器来校验这个token,如果不匹配的话就进行拒绝,这样就可以保证每次登录都是唯一的token了。

微信图片_20220718115058.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • Python是一款操作简单的编程语言,内置丰富的库,能够很容易的实现强大的功能,在使用Python进行框架搭建时,往往需要用到Python执行系统命令,一些开发人员对此不熟悉,以下是具体的操作方法:1. os.system()这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息。>>> import os >>> output = os.system('cat /proc/cpuinfo') processor : ...
            13 13 1090
            分享
          • 免费的开源框架和工具由于其开源特性,现在逐渐成为自动化测试的首选解决方案。 区别在于,你是喜欢使用类库编写一个全新的自动化测试框架,或者喜欢使用一个现成的工具。本文帮忙你快速了解 10 大免费和开源测试工具、框架。Katalon StudioKatalon-StudioKatalon Studio 是一款流行的免费测试自动化工具,适用于 Web、移动、API和桌面(Windows)。Katalon Studio 提供低代码和脚本方法,消除了构建和维护单独测试框架的培训成本。借助强大的内置功能,用户可以直接专注于测试活动,而在创建、运行和维护测试上花费更少的精力。支持的编程语言:Java 和 G...
            0 0 741
            分享
          • 前言性能测试是通过性能的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。术语:场景(Scenario):场景即测试场景。在LoadRunner的Controller部件中,可以设计与执行用例的场景,设置场景的步骤主要包括:在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器(Lo...
            0 0 1978
            分享
          • 读者提问:什么样的接口不适合做自动化测试呢 ?阿常回答:这个问题我反过来回答,什么样的接口适合做自动化测试呢 ?考虑投入产出比。从长远看,实现自动化能否给我们带来持续的效益。在我们公司的做法,选取核心业务流程,实现核心业务正常、异常及反向流程的接口自动化。今天一位读者朋友阿花问阿常这个问题:阿花在测试团队中负责接口自动化,她的疑问:接口自动化由她一个人负责,所有的接口难道都要做自动化,接口自动化是万能的吗?自动化测试如何创造业务价值?接口自动化不是万能的,它并不能比手工测试发现更多的bug,在我们做接口自动化之前,先考虑我们为什么做接口自动化,想解决什么问题。接口自动化的适...
            0 0 935
            分享
          • Q1、Python的主要功能是什么?Python是一种解释型语言。与C语言等语言不同,Python不需要在运行之前进行编译。Python是动态语言,当您声明变量或类似变量时,您不需要声明变量的类型。Python适合面向对象的编程,因为它允许类的定义以及组合和继承。Python没有访问说明(如C ++的public,private)。在Python中,函数是第一类对象。它们可以分配给变量。类也是第一类对象编写Python代码很快,但运行比较慢。Python允许基于C的扩展,例如numpy函数库。Python可用于许多领域。Web应用程序开发,自动化,数学建模,大数据应用程序等等。它也经常被用作“...
            8 8 704
            分享
      • 51testing软件测试圈微信