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

sql注入:

***

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

撞库

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

爆破

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

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

解决办法:

 

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

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

2. 不要使用动态拼接SQL

参数化sql、类型判定

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

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

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

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

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

跨站脚本***(Cross Site Scripting)

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

***者向web页面里插入恶意html代码 用户浏览该页之时,嵌入其中的html代码会被执行 通常以获取用户cookie为目的 注入内容以javascript为主
xss又分反射型和存储型,两者原理类似
反射型xss的特点是请求即执行;而存储型xss的特点是先存储,再执行;
大概过程可以用一张图概括 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

解决办法:

 

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

转码:分号、<>...

Cookie属性:Secure、http-only

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

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

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

解决办法:

 

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

限制会话寿命

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章