本质:产生的原因本质上是参数可知或可预测
防御:
1、加密参数:加密加盐,不可知,不可预测
     忧虑,引入其他麻烦:一、数据分析困难
                                     二、正常功能会受影响,比如url收藏
2、验证码:用户在确认操作
     破解:只防止了用户不知情点击的情况,用户知情时也可以诱导点击
3、referer check:验证上一url,源检测
     破解:一、诱导合理顺序产生合理源referer
               二、有些应用可以自定义referer
     忧虑:referer check不一定可用,有些应用禁止了(处于隐私考虑或其他)
     辅助手段
4、token:增加一个随机参数  (问题:只是参数值随机、不可预测,还是参数名也有必要随机?    名也随机不好传参?),只有服务端与客户端知道的秘密(如可在cookie中也放置,对比与提交的参数(表单)中是否一致,具体应用场景具体设计)
      缺陷:只防护单纯的csrf,当存在xss时,token也被获取
    
具体应用场景、业务可使用、适用的不同,有些简单设置,有些严格设置;设想如果可以token加密怎样?  这几种都应用怎样?
但具体业务场景中不太现实,毕竟还需要为业务做数据分析、考虑用户体验等等;
so,具体应用、场景,具体分析、设计;
有不对的地方欢迎大家指正,谢谢

源链接

Hacking more

...