安全测试

安全性测试

    安全性测试其实就是针对应用软件提供的安全性服务进行验证,或者识别其安全性缺陷的过程。

    Web安全的常见攻击方式

    * 认证与授权

    * session与cookie

    * 文件上传

    * SQL注入

    * XSS攻击

    * DDOS攻击

    * 由于错误引起的敏感信息泄露

    * 暴力破解

    1 认证与授权

        认证

            在进行用户身份认证时,对于用户名或密码错误不要提示的过于精确

            对于需要一定身份才能访问的页面,必须要进行身份验证,不能直接用户输入url就允许该页面打开

            对于密码要有密码强度策略

            对于登录失败要有安全策略

            对于登录最好加入图片验证码,目前来说图片验证码还是一个成本较低,安全性较高的手段

        授权

            不同身份的用户对于不同的模块和功能要有不同的权限

            对于有权限的功能模块,不可以通过url在不辨识权限的情况下就允许随便访问

            系统的权限管理就应该只能由管理员一个人来设定,其他任何用户都不应该有权限

            对于系统的权限最好细化到数据的增删改查这个程度,细化到模块,细化到具体操作。对于具体操作一定要有日志记录。

    2 session与cookie

        对于session在生成的时候最好和用户请求的ip地址进行绑定,并且还可以加入时间,从而让session能够只在一个有效期内有效

        因为cookie存在于客户端,所以对于cookie中的敏感信息最好进行加密保存,防止信息泄露

        针对cookie其有效的作用域原则上应该是越小越好,不要一味的path都用/,这样会导致该域名下同一个虚拟目录的所有项目该cookie全部生效。

        对于cookie不要在其中放置和系统控制相关的键值对,避免因人篡改导致的安全问题
	3 文件上传
		首先对于上传文件的类型需要检查,对于上传的内容可以利用正则表达式验证,也可以利用长度进行限制
		对于文件的类型检查不能仅仅依赖于文件扩展名。
		不能仅仅只是在前端进行检查,还需要后端也要进行相应的检查
		需要对用户上传的文件size进行检查
		对于用户连接后不停的传数据的行为也要进行检查
4 SQL注入

	select first_name, surname from userinfo where id = [    ]
	1 or 1 = 1
	
	select first_name, surname from userinfo where id = '[     ]'
	1or1=1
	
	select first_name, surname from userinfor where id = '[     ]' limit 1
	1or1=1’#
	
	select first_name, surname from userinfor where id = '[1' or '1' = '1' union select table_name, table_schema from information_schema.tables where table_schema = 'woniusales'#]' limit 1
	select first_name, surname from userinfor where id = '[1' or '1' = '1' union select column_name, table_schema from information_schema.columns where table_schema = 'woniusales' and table_name = 'user'#]' limit 1
	select first_name, surname from userinfor where id = '[1' or '1' = '1' union select username, password from woniusales.user#]' limit 1
	永远不要相信用户的输入,对于用户的输入要通过正则表达式验证,并且对内容的长度进行限制
	对于用户输入的单引号或双引号都要进行转义处理
	对于sql永远不要去动态拼接,要用sql的参数化,或者存储过程的方式来去做
	对于敏感数据一定要进行加密
	对于项目的数据库连接一定不能使用超级管理员权限去连接
	对于sql的错误一定要封装,不要轻易暴露
对于sql注入方面的问题,可以通过Burp suite,app scan这样一些工具来进行扫描
5 跨站脚本攻击XSS(cross site script)

	​	攻击对象与前面的攻击方式不同,XXS攻击的不是web服务器提供商,而是web服务的用户,利用网络的各种交互管道,向服务器提交攻击者编写的恶意html、js代码,利用服务用户的浏览器来执行这些代码,从而达到攻击这些用户的目的。
	
	*反射型跨站Reflected XSS
	
	对于发送给服务器的请求参数不做保存直接返回给用户显示,常见于钓鱼
	
	*存储型跨站Stored xss
	
	发送给服务器的恶意数据不加过滤的保存在数据库中,在有请求读取数据的时候,就会在用户端的浏览器中执行,常见于挂马
	
	跨站请求伪造CSRF
	
	XSS和CSRF共同点是两者攻击都是web服务的用户,他们都不直接攻击web服务本身。
	
	两者的区别:
	
	XXS利用了用户对于网站信任的心理;CSRF请求伪造利用了网站对用户的信息。
	
6 DDOS分布式拒绝服务攻击
	
	*SYN变种攻击
	
	*tcp变种攻击
	
	*udp变种攻击
	
	*针对web服务器的多连接攻击
	
7 利用错误信息获取敏感数据
	
	​		要去对产品的任何开发细节,包含运行的系统,运行软件,运行工具,运行环境,相应的

​	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值