白帽子讲web安全——笔札

1、注入攻击

 

引起危险:用户输入的数据被当作代码执行,这里有两个条件,第一个是用户能够控制输入;第二个是原本程序要执行的代码,拼接了用户输入的数据。

 

举例:select * from a where b=某一个变量,这个变量是用户能够控制输入的,他可能是sql的执行代码

 

防御:使用预编译(一般用这个)、使用存储过程、检查数据类型、使用安全函数

 

 

2、登录认证会话管理

 

1、密码必须使用不可逆,建议使用HMAC-SHA1代替MD5加密

2、现在一般服务端不维护session,把session的相关信息加密之后放入cookies中,强制设置几天让session失效

3、用户登录后,如果服务端维护session,那需要把之前的session给注销,并重新产生新session,否则会出现session fixation攻击(用前端的sessionId可以登录后台管理)

 

3、访问控制

RBAC——垂直权限,不同角色访问不同链接资源,有通用的解决方案

数据权限——水平权限,同一种角色访问私有的数据,至今没有解决方案

spring security学习成本高,而且不宜配置,建议还是自己写一个RBAC

单点登录:SSO有一个openId开放平台

第三方授权应用访问:OAuth,新浪微薄就有

 

4、加密

1、加密分成两种:分组加密、流加密

2、不要使用流加密

3、使用分组加密的,不要使用ECB模式(分组加密有四种模式)

4、不要自己实现加密算法,使用专家库

5、密钥等不要硬编码,尽量放在配置文件或者数据库中控制

 

6、使用CBC模式的AES256加密

7、HMAC-SHA512用于完整性检查

8、带有salt的SHA-256或者SHA-512用于Hashing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值