1、SQL注入:mybatis禁止使用${}
2、身份认证安全
验证码安全:短信验证码调用次数限制(横向、纵向);短信验证码失效策略;图片验证码失效策略;无图验证码
后台分离:同一业务系统的后台,如果内部员工和代理商都要使用,则应从功能上拆分成两个独立的系统
3、业务逻辑安全
身份认证逻辑:查询用户信息应该通过cookie确认身份,禁止使用user=%s或者id=%s这种参数查询;身份cookie验证_q,_v,_t或者_s(其中三者一致),禁止取cookie中的username作为用户在线标识
支付校验逻辑:
4、越权访问:某些用户不能访问到的资源,被访问到了
垂直越权:未登录用户访问登录后才能访问的功能;普通用户操作管理员才能操作的功能
水平越权:用户A访问只有用户B才能访问的信息
解决方案:
~对于后台程序,默认应该拒绝无授权用户的访问
~授权账号的角色级别要区分明确,避免纵向越权
~应用程序是否验证,用户有权限访问资源
~应用程序能否保证,当前用户访问的资源是只授权给该用户的资源,避免水平越权
~从用户的加密认证cookie中获取当前用户的id,并且需要在执行的SQL语句中加入当前用户id作为条件语句
5、SSRF:服务端请求伪造攻击,可以通俗的理解为外部用户借助一些proxy功能的接口,实现了HTTP代理功能;可以对传入ip做白名单限制
6、URL任意跳转:w