常见web安全问题的测试关注点

本文章转载于搜狗测试

先回顾一下今年来发生的由于互联网安全问题引发的事件

·2014年3月,携程网用户支付信息出现漏洞:漏洞泄露的信息包括用户的姓名、身份证号码、银行卡卡号、银行卡CVV码

·2014年5月,UC浏览器用户敏感数据泄漏的漏洞:只要用户通过UC浏览器搜索并登录人人、新浪微博等网站,其提交的用户信息和密码都有可能被黑客截取

·2014年5月,小米论坛存在用户资料泄露:泄露涉及800万小米论坛注册用户

·。。。。。

那么造成这些问题的原因是什么呢?OWASP(The Open Web Application Security Project)的安全问题TOP10里,以下几个占比超过50%:

sql注入:

拖库

通过技术手段,利用网站安全漏洞把服务器数据库中的数据全部或部分获取;网站越大,用户信息越多,拖库的影响越大,危害越大

撞库

很多用户在登录不同网站时为了图方便好记,往往喜欢用统一的用户名和密码,黑客把拖库取得的用户名及密码跟网络银行、支付宝、淘宝等有价值的网站进行匹配登录,这就是“撞库”

爆破

俗称“暴力破解”或“爆破”,对已知的用户名,使用密码字典库暴力尝试、破解用户密码;如果网站不限制密码重试次数,被爆破成功的概率较高

·这里的拖库,就是我们平时所说的sql注入,利用前端和后台的疏忽,将后台数据库中的数据全部拖出

解决办法:

1. 不要信任用户的输入,对用户的输入进行校验

正则校验、长度限制、特殊字符转码(' --)

2. 不要使用动态拼接SQL

参数化sql、类型判定

3. 不要使用管理员权限的数据库连接

为每个应用开放有限的独立权限

4. 数据库机密信息不要明文存储 加密、hash

5. 异常信息不要直接返回给用户

使用自定义的错误信息进行包装

跨站脚本攻击(Cross Site Scripting)

这里解释一下,因为跨站脚本攻击的缩写是CSS,为了与CSS区分,所以这里缩写为XSS

攻击者向web页面里插入恶意html代码 用户浏览该页之时,嵌入其中的html代码会被执行 通常以获取用户cookie为目的 注入内容以javascript为主

xss又分反射型和存储型,两者原理类似

反射型xss的特点是请求即执行;而存储型xss的特点是先存储,再执行;

大概过程可以用一张图概括

常见web安全问题的测试关注点_第1张图片

解决办法:

内容过滤:过滤关键字 "javascript..."

转码:分号、<>...

Cookie属性:Secure、http-only

失效的身份认证和会话管理

·这类问题细分起来种类繁多,举几个有代表性的吧

web应用在开发时,可能存在为了实现需求而自定义身份认证方式或会话管理方式,例:会话id存在url中,这样如果直接copy别人的url,那么可以直接使用这个人的账户信息;用户名、密码等信息cookie未设置过期时间,那么当他人登录同一客户端时,也可能会直接使用他人账户;

解决办法:

避免未经授权访问会话状态

限制会话寿命

对身份验证 cookie 的内容进行加密

不要在网络上以纯文本形式发送密码

你可能感兴趣的:(常见web安全问题的测试关注点)