web测试安全性常见问题
web测试安全性常见问题
一、 登录账号明文传输
1、 问题一:登录账号密码或者修改密码明文传输
现象:目前物流对内的java系统基本上都是明文传输用户名和密码的
使用火狐自带工具-开发者-网络,或者httpwatch工具很容易获取到信息
打开工具后进行被测系统正常登录软件可自动获取信息
建议:
登录使用加密传输,一般的登录都采用https方式加密协议
2、 问题二:在后台日志中明文打印出了登录的账号和密码
现象:
建议:在日志中比较敏感的信息比如密码都采用*转换显示
二、 SQL注入
1、 问题一:部分查询输入存在SQL注入风险
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
现象一:
原登录页面的sql:
SELECT COUNT(*) FROM Login WHERE UserName='admin' AND Password='123456'
现在登录时输入:’admin’--
SELECT COUNT(*) FROM Login WHERE UserName='admin'-- Password='123'
因为UserName值中输入了“--”注释符,后面语句被省略而登录成功。(常常的手法:前面加上'; ' (分号,用于结束前一条语句),后边加上'--' (用于注释后边的语句))
现象二:在查询语句中输入:’ or ‘1=1 看是否会查询出所有的记录
建议:开发不要直接写静态sql语句进行查询,需要使用动态拼接SQL,对于web测试需要对查询部位进行SQL注入测试。
注:参数化查询原理:在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部份来处理,而是在数据库完成 SQL 指令的编译后,才套用参数运行,因此就算参数中含有具有损的指令,也不会被数据库所运行。
三、 XSS跨站点攻击
1、 问题一:部分系统存在提交表单时输入html代码和JS代码可在服务器执行的情况
跨站脚本攻击(Cross Site Scripting)恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的,如:
<input>
<script>alert('xss')</script>
现象:文本框中输入<input>或<script>alert('xss')</script>
提交后<input>和<script>alert('xss')</script>作为代码执行了出现了输入框,而不是作为字符串存储
建议:
原则:不相信客户输入的数据
注意: 攻击代码不一定在<script></script>中,还有其他方式
1)只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。
2)对数据进行Html Encode 处理
3)过滤或移除或转义特殊的Html标签, 例如: <script>, <iframe> , < for <, > for >, " for
四、 跨站伪造
1、 问题一:构造POST请求进行请求可提交到数据库中
是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法,也是可以从第三方网站提交的
现象:如下脚步用户获取到请求地址后,可以自己构造请求消息请求参数和值,通过浏览器执行后也可以提交到数据库那说明就是存在跨站伪造
建议:
Token验证
在每个HTTP请求里附加一部分信息是一个防御CSRF攻击的很好的方法,因为这样可以判断请求是否已经授权。这个“验证token”应该不能轻易的被未登录的用户猜测出来。如果请求里面没有这个验证token或者token不能匹配的话,服务器应该拒绝这个请求。
五、 目前普遍现象Java层未做校验或未做全部校验
一般来说JS的校验都是一种辅助,实际校验都要放在服务器,如果不做JAVA校验就可能会存在
1) 使用WebSarab等代理工具绕过页面校验,直接篡改数据后往数据库中插入数据;
2) html层的校验不能防止用户伪造请求 ,如上面的token校验就是其中一个例子;
3) 按ctrl+f5强制刷新提交,出现重复提交
4) js需要浏览器下载,如果浏览器下载JS失败,按钮未灰化用户可以反复点击,可出现重复提交,那还得靠服务器端的重复提交来保证
六、 借用WebSarab工具来绕过客户端的校验,验证是否进行了服务校验
七、 借用AppScan工具来自动扫描安全性问题
web测试安全性常见问题的更多相关文章
- Web测试介绍2一 安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程. 主要安全需求包括: (i) 认证 Authent ...
- Web测试的常用测试用例与知识
1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...
- Web测试中常见分享问题
Web测试中,由于开发通常指注重完成H5页面的逻辑功能,对各种系统.浏览器等考虑不周,同时Android端各类机型碎片化,容易产生兼容性问题,这其中以分享类型为最. 本文简单分析总结一些测试 ...
- web测试常用的用例及知识
1. Web测试中关于登录的测试... 1 2. 搜索功能测试用例设计... 2 3. 翻页功能测试用例... 3 4. 输入框的测试... 5 5. ...
- Web 测试经验总结
Web功能测试常用方法 1.页面链接检查每一个链接是否都有对应的页面,并且页面之间切换正确: 2.相关性检查删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确. 3.检查按钮的功能 ...
- 【转】web测试内容及工具经典总结
基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且,随着基于Web的系统变得越来越复杂,一 ...
- 软件测试之WEB测试经典总结
在Web工程过程中,基于Web系统的测试.确认和验收是一项重要而富有挑战性的工作.基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览 ...
- web测试方面的知识
web测试 软件测试体系架构设计 一.体系架构 1.C/S:客户端+服务器端,如QQ.单机版记事本.office等,所用语言:VB.C++.C.C#.JAVA.PB.D…等数组语言,C和S都是自己测, ...
- [转载]软件测试之Web测试经典总结
转载自:软件测试之Web测试经典总结 基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且, ...
随机推荐
- Knock: 使用压电传感器来检测敲击
原文链接:https://www.arduino.cc/en/Tutorial/Knock 敲击检测 本教程介绍如何使用压电传感器检测振动,比如敲门.桌子或其他固体表面. 压电传感器是一种能够在振动. ...
- sas编程-日期相差计算函数 intnx
sas编程-日期相差计算函数 intnx 示例代码: data _null_; lastdate=intnx('year',today(),-100); format lastdate ...
- IaaS, PaaS, SaaS 解释
IaaS.PaaS.SaaS作为云计算三种服务模式,下面会着重介绍他们的定义.作用.功能.对应产品以及他们之间的关系等. 一.定义: SaaS:Software as a Service,软件 ...
- Git self-learning
---恢复内容开始--- 使用后的总结 git config --global user.name "" #设置和查看用户名git config --global user.ema ...
- This kind of launch is configured to open the Debug perspective when it suspends.
This kind of launch is configured to open the Debug perspective when it suspends. 因为设置了断点才会弹出这个,不需要调 ...
- xcode-git笔记
git initgit add .vi .gitignore /*将代码区蓝色字体的内容*/git commit -m "初次建立"git remote add origin ht ...
- WEBPACK简介
Webpack 是一个强力的模块打包器. 所谓 包 (bundle) 就是一个 JavaScript 文件,它把一堆 资源 (assets) 合并在一起,以便它们可以在同一个文件请求中发回给客户端. ...
- 安卓仿照QQ工单数实现
1.使用BadgeView 控件,可以在网上下载源码或者Jar包 2.使用方法 holder.badgeView = new BadgeView(holder.item_layout.getConte ...
- 如何将ASP.NET MVC所有参数均自动设置为默认
今天看到CSDN上有个问题觉得有点意思:"可不可以ASP.NET MVC所有参数均自动设置为默认" public class HomeController : Controller ...
- StrangeIoc框架学习----在项目中实战
最近,因为公司的项目一直在研究StrangeIoc框架,小有所得,略作记录. StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对unity开发的一款框架,非常好用. 一 ...