三、修改环境 现在用户已经知道了系统启动文件的位置和内容,就可以修改启动文件,来自定义我们的环境。(准) 1.用户应当修改哪些文件 一般来说,在 PATH 中添加目录或定义额外的环境变量,需要将这些更改放入到 .bash_profile 文件中(或者是其它的等效文件,这取决于系统的发行版本,比如 Ubuntu 系统使用的是 .profile 文件),其它的改变则应录入 .bashrc 文件中。除非是系统管理员需要修改用户公用的默认设置,普通用户只需对主目录下的文件作出修改即可。当然用户也可以修改其它目录
接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 接口测试大体分为两类:模块接口测试和web接口测试 模块接口测试是单元测试的基础。 4、接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。 5、接口的安全性,如果是外部接口的话,这点尤为重要。 web接口测试又可分为两类:服务器接口测试和外部接口测试。 服务器接口测试:是测试浏览器与服务器的接口。 3、接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。 4、接口的性能,web接口同样注重性能,这直接影响用户的使用体验。
安全性测试主要是指利用安全性测试技术,在产品没有正式发布前找到潜在漏洞。找到漏洞后,需要把这些漏洞进行修复,避免这些潜在的漏洞被非法用户发现并利用。 像我们测试中找软件产品bug一样,安全漏洞也是很难完全避免的。 还有一个主要原因是因为程序员在开发过程中很可能会埋下一个漏洞,或者人为的安全性漏洞,都是需要我们去避免的。 具体来说,安全性测试主要包括以下几个部分内容: 认证与授权 Session与Cookie DDOS拒绝服务攻击 文件上传漏洞 XSS跨站攻击 SQL注入 认证与授权 尽量避免未被授权的页面可以直接访问 SQL注入的方法措施: 从测试人员角度来说,在需求阶段时,我们就应该有意识的将安全性检查应用到需求测试。
安全性测试主要是指利用安全性测试技术,在产品没有正式发布前找到潜在漏洞。找到漏洞后,需要把这些漏洞进行修复,避免这些潜在的漏洞被非法用户发现并利用。 像我们测试中找软件产品bug一样,安全漏洞也是很难完全避免的。 还有一个主要原因是因为程序员在开发过程中很可能会埋下一个漏洞,或者人为的安全性漏洞,都是需要我们去避免的。 具体来说,安全性测试主要包括以下几个部分内容: 认证与授权 Session与Cookie DDOS拒绝服务攻击 文件上传漏洞 XSS跨站攻击 SQL注入 认证与授权 尽量避免未被授权的页面可以直接访问 SQL注入的方法措施: 从测试人员角度来说,在需求阶段时,我们就应该有意识的将安全性检查应用到需求测试。
顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址: https://item.jd.com/34295655089.html 《基于Django的电子商务网站》网上购买地址: https:// page=home" target="_blank">测试之家 访问index.php,显示home.php,点击任意一个超级链接,显示如下内容。 3.文件包含漏洞测试方法 有效测试文件包含漏洞的方法是静态扫描和代码审查。 另外也可以借助类似BurnSuite工具来进行文件包含漏洞的测试。 4.文件包含漏洞防护方法 文件包含漏洞的防护可以总结为以下几点。 l确保外部包含是不能被用户控制的。 顾翔老师与云测学院联合推出:软件测试分析与设计,请点击https://v.youku.com/v_show/id_XNDQ3MzkyNjk3Ng==.html?
5 本章总结 5.1 介绍内容 •软件安全知识概要 Ø软件安全分类 Ø软件安全性与便捷性 Ø白帽子黑客、黑帽子黑客 Ø白帽子兵法 u默认规则 u纵深防御原则(Defense in Depth) u数据与代码分离原则 ØXSS注入 uXSS原理 u XSS注入分类 uXSS会话劫持 uXSS蠕虫 uXSS测试方法 u XSS防护方法 ØCSRF注入 uCSRF注入介绍 u CSRF注入分类及攻击方法 uCSRF测试方法 u CSRF防护方法 Ø点击劫持 ØHTML5的安全 u
XSS测试方法 1)容易出现XSS注入的地方 XSS测试就是在容易出现XSS注入的地方输入被测代码,提交后观察其显示是否会触发JavaScript脚本。 常用的XSS测试JavaScript脚本主要就下面两个。 window.attachEvent()…留言板document.location.replace() 评论区document.location.assign() 用户信息… … 2)关于富文本的测试 3)测试技巧 下面来介绍几个XSS注入的测试技巧。 ①绕过长度 见下面代码。 Sys.safari = s[1] : 0; //以下进行测试 if (Sys.ie) document.write('IE: ' +Sys.ie); if (Sys.firefox
SSL(Transport Layer Security)安全套接字层协议,TLS传输层安全性。SSL有v1.0、v2.0、v3.0和v3.1 4个版本号,其中仅有v3.1版本是安全的。 下面从安全服务设计、服务端安全证书配置和服务器协议和密码设置来进行讨论基于HTTPS协议的安全性。 1)安全服务设计 l 在任何地方都要使用SSL/TLS进行安全传输。包括内部网络和外部网络。 案例 案例4-7 用户登录页面安全用例设计 用户登录页面如48所示,下面是安全测试的测试点。 ? 48 用户登录页面 l 通过抓包工具查看,在传输过程,用户名和密码是否加密? 案例4-9 找回密码安全用例设计 下面是找回密码安全测试的测试点。 l 在设置新的密码前是否有安全信息认证? l 是否通过多种方式找回密码? 以上的测试点并不是很全面,建议读者在自己团队里采取头脑风暴的形式找到更多的测试点。
2)测试方法 获取另一个用户的可能存在水平越权的URL,以自己的身份登录,在浏览器URL中输入获取的URL,验证是否真正存在水平越权。 3)防护方法 在程序中做好水平越权控制,见如下代码。 2)测试方法 获取高级权限用户的可能存在垂直越权的URL,以自己的身份登录,在浏览器URL中输入获取的URL,验证是否真正存在垂直越权。 3)防护方法 在程序中做好垂直越权控制,见如下代码。
<meta name="viewport" content="width=device-width,initial-scale=1.0">
="id_password">
<input type= "submit" value= "提交" requiredid="id_password"> </form> 对这个代码建立对应的接口测试代码 CSRF注入测试方法 CSRF注入可以用CSRFTester工具进行测试,详细请参见本书下篇6.2.1节。 4. 14 CSRF Token在前后端分离中的解决方案 2)其他方法 但是这个方法是防君子不防小人的,有经验的工程师可以构造接口测试代码,将cooiles的值与hidden中的值设置为一样的,然后提交,可以通过假除了XSS注入外,还存在XML注入、JSON注入和XPath注入三种代码注入情形。
inurl 把搜索范围限定在特定url中 用inurl:,后面跟着url中出现的关键词 渗透测试 inurl:test(url里面含test) inurl:和后面所跟的关键词之间不要有空格 ""《》 精确匹配 ,让百度不拆分查询词 用""或《》(中英文均可) "探索式软件测试" 书名号会出现在搜索结果中 书名号括起来的内容不会被拆分 - 让搜索结果中不含有特定查询词 用减号 -语法 简历模板 -程序员简历 案例:渗透测试 inurl:test。URL中含有test且关于“渗透测试”所有收录的网页。 l "关键字" 作用:关键字为“关键字”的查询,且关键字是不可拆分的。 案例:"探索式软件测试"。 查询关键字为“探索式软件测试”所有收录的网页,关键字不可拆分,比如“探索式”“软件”“测试”“软件测试”。 l 关键字-去除内容 作用:查询内容为不包含“去除内容”的“关键字”所有收录的网页。 案例:软件测试-软件自动化测试。不包含“软件自动化测试”的“软件测试”的网站。 2. nmap nmap是一个信息侦探的工具,在本书下篇6.3.1中将会详细介绍。 3.
顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址: https://item.jd.com/34295655089.html 《基于Django的电子商务网站》网上购买地址: https:// 顾翔老师与云测学院联合推出:软件测试分析与设计,请点击https://v.youku.com/v_show/id_XNDQ3MzkyNjk3Ng==.html?
顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址: https://item.jd.com/34295655089.html 《基于Django的电子商务网站》网上购买地址: https:// 4.XXE的测试方法及防护方法 对于XXE测试,作者认为最好是基于代码通过静态扫描和代码审核的方法,或者可以借助类似BurnSuite工具来进行文件包含漏洞的测试。 顾翔老师与云测学院联合推出:软件测试分析与设计,请点击https://v.youku.com/v_show/id_XNDQ3MzkyNjk3Ng==.html?
3 APP安全测试概要 2016 OWASPMobile TOP 10排名如下。 •不当的平台使用。 •不安全的数据存储。 •不安全的通信。 •不安全的身份验证。 •加密不足。 •不安全的授权。 这里介绍一下“逆向工程-反编译测试”“键盘劫持”和“信息泄露”。 3.1逆向工程-反编译测试 对于安卓源代码是Java文件,正向编译过程是把.java->.jar->.apk。
4 安全测试流程 做安全测试的时候,首先请把白盒测试和黑盒测试遗忘掉,因为大部分安全测试是基于白盒测试和白盒测试与黑盒测试之间的灰盒测试。Web安全测试与其他测试一样,应该贯穿于软件开发始终。 案例4-10 电子商务系统的安全测试流程 电子商务系统参见附录A。 4.1 需求阶段 在需求阶段,需要做如下工作。 •根据产品类型评价安全性级别。 •确定各功能的安全性优先等级。 •分析可能存在何种安全性问题。 1. 根据产品类型评价安全性级别 根据《XXX公司安全界别评定规则》,电子商务网站属于II级。 2. 确定各功能的安全性优先等级 根据讨论,电子商务各大模块的安全优先级如下。 •第1级。支付模块。 •第2级。用户模块。 •第3级。订单模块。 •第4级。收货地址模块。 •第5级。 分析可能存在何种安全性问题 根据讨论,电子商务产品可能存在以下安全漏洞。 •XSS注入。 •CSRF注入。 •点击劫持。 •HTML5安全。 •安全响应头。 •SQL注入。 •XML代码注入。
顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址: https://item.jd.com/34295655089.html 《基于Django的电子商务网站》网上购买地址: https:// 顾翔老师与云测学院联合推出:软件测试分析与设计,请点击https://v.youku.com/v_show/id_XNDQ3MzkyNjk3Ng==.html?
测试人员也可以通过编写自动化功能测试脚本,基于GUI的或者基于接口的都可以(第9章将进行详细介绍),利用循环语句来测试代码是否对DDOS攻击做好防范。 self.assertIn("电子商务系统" ,str(data.text)) if __name__=='__main__': #构造测试集 unittest.TestSuite() suite.addTest(login("test_correctusername_correctpassword")) #运行测试集合