基于Django的电子商务网站开发(连载40)

简介: 顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。

4.4 防止XSS攻击


        在百度百科中XSS攻击是这样定义的:“XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style SheetsCSS)的缩写混淆,故将跨站脚本攻击缩写为XSSXSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其他用户使用的页面中。” XSS攻击注入包括持久型、反射型和DOM型。最典型的一个例子是在文本框中输入一段JavaScript语句,然后在页面显示时候这个JavaScript语句被激活执行。最简单的一个例子,在收货地址输入栏中输入<img src="javascript:alert('hi')">,显示的时候看看是否javascript被执行。这个测试用XML来实现进行比较困难,因为xml不允许存在HTML中的特殊字符,比如<>",然而用&lt;&gt;quot;去替代意义就不大了。经过了手工测试,发现结果是非常让人满意的,Django框架已经帮助实现了对XSS注入的防范。


4.5 防止SQL注入


在百度百科中是这样定义SQL注入的:“所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过Web表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。”


其实,在第3.4.3节中有个测试用例就是用来测试是否存在SQL注入,在模糊查询的时候,SQL语句往往是这样的:select * from table where title like '%var%',其中var是用户输入的字符,在goods-testcase005中输入的var是‘%’,如果程序没有进行任何处理,这个SQL语句就变成了select * from table where title like '%%%'这样table表中的所有记录都被查询出来了。在程序中没有进行任何处理,这说明Django框架自动处理了这个注入。


除了‘%’的注入,在用户登录时候的SQL注入更加危险,正如产品代码中,判断用户是否合法,类似的SQL 语句是这样的select * from goods_user where username='usernamevar' and password='passwordvar',其中usernamevarpasswordvar是通过前端输入的,如果返回的结果不为空,则认为用户合法,否则就认为不合法。现在来设想一下:如果usernamevar= 111passwordvar= ' or 1=1 --',这样SQL语句就变为select *from goods_user where username='111' and password='' or 1=1 --'',因为1=1是永远正确的,又由于前面是or操作,所以这条SQL语句返回记录是不为空的。因此,在loginRegConfig.xml中设计这样的测试数据。


...
         <!--- SQL注入测试 -->
         <case>
                  <TestId>loginReg-testcase007</TestId>
                  <Title>用户登录</Title>
                  <Method>post</Method>
                  <Desc>SQL注入测试</Desc>
                  <Url>http://127.0.0.1:8000/login_action/</Url>
                  <InptArg>{"username":"111","password":"'  or 1=1 --'"}</InptArg><!--- 用户名、密码均同于initInfo.xml中用户信息 -->
                  <Result>200</Result>
                  <CheckWord>用户名或者密码错误</CheckWord>
</case>
...


运行测试程序loginRegTest.py,测试通过,说明Django也已经处理了这种情况的SQL注入。


本书参考文献


1】百度百科

2】《Web接口开发与自动化测试基于Python语言》,虫师编著,电子工业出版社,20161

3】《Selenium 2 自动化测试实战基于Python语言》,虫师编著,电子工业出版社,20174

4】《跟着老齐学Python从入门到精通》,齐伟编著,电子工业出版社,20165

5】《跟着老齐学Python Django实战》,齐伟编著,电子工业出版社,201710

6】《Python新手使用Django 建站的16堂课》,何敏煌著,清华大学出版社,20175

7hornbills,支付宝即时到帐接口的python实现,示例采用django框架:http://blog.csdn.net/hornbills/article/details/40338949

8java虾米的博客,细说Python2.x3.x版本区别:http://www.cnblogs.com/wangyayun/archive/2017/05/02/6794611.html


截止今日,本书连载已全部结束,谢谢大家!


星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net


顾翔凡言:

      软件测试正在生病,而且病得不轻,自动化测试被要不吹得太火,要不一点都不会,自动化比不过开发、测试又找不到缺陷,丢了西瓜也捡不到芝麻。

目录
相关文章
|
3月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
101 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
安全 测试技术 Python
基于Django的电子商务网站开发(连载39)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
50 0
基于Django的电子商务网站开发(连载39)
|
测试技术 Python
基于Django的电子商务网站开发(连载38)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
57 0
|
存储 安全 前端开发
基于Django的电子商务网站开发(连载37)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
119 0
基于Django的电子商务网站开发(连载37)
|
测试技术 Python
基于Django的电子商务网站开发(连载36)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
64 0
基于Django的电子商务网站开发(连载36)
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载35)
基于Django的电子商务网站开发(连载35)
77 0
|
XML 测试技术 数据库
基于Django的电子商务网站开发(连载34)
基于Django的电子商务网站开发(连载34)
45 0
基于Django的电子商务网站开发(连载34)
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载33)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
67 0
基于Django的电子商务网站开发(连载33)
|
存储 测试技术 数据库
基于Django的电子商务网站开发(连载32)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
58 0
|
1月前
|
监控 安全 应用服务中间件
python中Django入门(四)
python中Django入门(四)
31 0