所谓的越权攻击是指低权限绕开限制访问到高权限的数据,从而导致敏感信息泄漏。
预防越权攻击不能仅仅依靠前端,例如只靠前端隐藏某个敏感操作的按钮,隐藏某个高权限的页面等,因为这样攻击者可以通过浏览器开发者工具或其他攻击工具来绕开前端的限制,直接访问后端接口,因此预防越权攻击需要后端做出响应的预防处理。
预防越权攻击需要后端在敏感操作的接口里辨别用户的身份,如果用户无权限则不允许其访问。辨别用户的身份方式有很多,这里介绍一种比较常用的方法JWT。
JWT全程JSON WITH TOKEN,是一种开放标准,旨在可被信任地、可被校验地、安全地在各方传递信息。JWT最常见的场景是授权。
JWT由三部分拼接构成:头部(base64)、负载(base64)和签名,各部分用英文.
分隔。
头部
头部通常由token类型(JWT)和算法名称构成。
{
'alg': "HS256",
'typ': "JWT"
}
负载
第二部分负载就是我们需要传递的信息主体。
通常包含以下信息(非必须):