关于前端项目安全问题的一些思考

关于前端项目安全问题的一些思考_第1张图片

1.路由守卫,本地路径与本地存储加密后的该用户所有能访问的的路径列表对比,是否有权限,这个要搞个一级页面-二级页面三级页面这种记录下来,后台管理员开启后赋予用户访问某些页面的权限,即能打开相关菜单的权限,但这个要注意,所有能去页面路径都要写进去,不然可能会进行错误拦截,几级菜单的路径要层次分明,否则我们在做正则表达式校验时可能会有问题。场景:根据页面的前两节路径做判断,如果页面路径包含/setUp/A就放行

针对项目安全做了非常细致的处理

用户的个人信息与案例库的接口调整

整个禁止非法请求的报错页面

2.本地存储信息进行sm4_cbc加密,用户菜单信息加密,

3.使用相关软件进行代码审查、依赖包审查

4.请求头加入加密参数,后端把加密参数encryptToken存一天,当天两个请求后端encryptToken解析出来如果一样,就报错禁止非法访问,encryptToken如果解析不出或为空就也报错,时间戳与当前时间相差超过5分钟就失败

token设置过期时间

5.加密参数:由13位毫秒级时间戳,随机乱码、请求路径与用户id组成一个对象,然后转成JSON字符串进行sm4-cbc加密

6.登录时传给后端的密码和账号进行sm4加密

这是不是还是防不住页面改参数,防止用户通过路径改参数怎么做呢,路径参数加密,像什么type参数——add.edit之类的全都进行SM4加密,第二种就是监听页面参数,当页面路径变了但参数没变就放行,参数变了就对比一下路径上的每次都传的时间戳参数,如果距离当前时间超过2分钟就拦截。我们每次在路由守卫时会存下当前页面的路径与参数,然后与会话存储里的上个页面的路径与参数对比,路径一样-参数变了-就去对比时间戳,时间戳一样或者解析不出来就阻止用户下一步行动。

我判断不出来用户是从别的地方进来的还是从地址栏改完进来的,每次打开新窗口,生成一个独特的随机数。

加接口判断用户是否有相关权限,如果有接口会正常返回值,然后跳转

menuList里面并不包含所有页面,所有子页面是不在里面的,导致去详情等子页面直接会被拦住-----------------

依赖包版本问题

你可能感兴趣的:(前端,安全)