Web安全:Auth认证

最近在看一本关于Web安全的书《白帽子讲Web安全》,书龄比较老,但是还是挺有科普意义。

认证 (Authentication)

Authentication 和 Authorization 是不一样的意思

请求头中的是Authorization

认证(Authentication)解决的是用户是谁,Authorization 解决的是这个用户能做什么。

认证离不开用户和密码,密码一般是以组合方式加salt做不可逆的加密存进数据库,常见的算法有MD5和SHA系列。

认证成功后需要维护用户登录态,一般将SessionID加密后存在cookie中,因为cookieshoul受浏览器同源策略的保护。

之前对Cookie test33加密的疑惑得到解决,服务端将信息直接加密写到cookie中。

授权 (Authorization)

垂直权限上遵循最小权限原则、默认拒绝。

容易出问题的是在水平权限上。在基于角色管理的访问控制(RBAC)上容易发送,比如同一角色组下用户A访问到了同一组用户B的资源。

现在一般使用Oauth验证机制