阅读更多
验证码:
1、设置验证码错误次数,一个验证码只能验证一次。
2、验证码的真实信息放在session中。
3、短信码和邮件验证码6位以上,数字和字母组合,图片验证码加干扰线。
用户登录:
1、单时间段内用户的密码错误次数限制。
2、同一个IP登录错误次数限制,批量用户登录限制(企业、学校等机构需要设置白名单)。
API登录:
1、设置登录密钥,绑定当前主机。
2、登录密钥clientKey需要不可预测,key的生成算法加入随机数。
3、禁止搜索引擎收录。
用户注册:
1、设计验证码。
2、采用用户机器唯一识别码,拦截短时间多次注册。
3、根据账号格式自学习识别垃圾账号(该功能需要深入学习)。
4、SQL注入,XSS漏洞。
密码找回:
1、接受验证码的手机号或者邮箱不可有用户控制,从数据库中读取。
2、加强验证码复杂度,防止暴力破解。
3、限制短信码错误次数,单个用户30分钟内错误3次,那么半小时内禁止找回密码。
4、短信码超时时间。
5、获取短信码的地方设置图片验证码,防止短信轰炸和批量找回。
6、验证签到送过来的凭证是否为该用户的(凭证跟用户id,用户名是否匹配)。
资料查看:
1、验证用户权限(将交易流水、地址信息与用户绑定)。
2、将用户信息存储到session,不要放在request,避免攻击者修改用户id。
投票/积分/抽奖
1、防止批量注册。
2、机器识别码验证,每台机器都根据硬件信息生成唯一的识别码。
3、用户需要登录,并将用户信息保存在session。
充值支付
防止客户端可以修改单价、总价和购买数量以及利用时间差多次购买(手机刷QQ钻)
1、保证数据可信,商品单价和总价不可从客户端获取。
2、商品数量必须大于0。
3、支付锁定机制,当一个支付操作开始就应该立马锁定当前账户,不能两个请求同时对余额进行操作。