安全——不是攻坚战而是持久战

时间:2016-04-01
地点:新大楼 A区 906

验证码

图片验证码

主要实现方式:

  • 验证码组件
  • 自行开发
    验证码问题的主要原因:使用不当
    问题1:表单验证与验证码验证分离
    描述:找回密码处,先随便填一个用户名,然后输入验证码,再看下请求,如果验证码核验请求和用户名核验请求时分开的,那就呵呵哒~~~
    实现手法:爆破验证码验证异步,得到正确的验证码,然后进行表单提交
    解决方案:凭据验证即失效
    问题2:前端请求刷新/废弃凭证
    实现手法:通过抓包软件直接请求验证接口,避免发送刷新/废弃凭证的异步
    解决方案:此类操作必须在后端完成
    问题3:废弃逻辑有误
    实现手法:开发考虑到了验证错误就要废弃当前验证码,但是验证成功却没有删,故第一次手工输入,抓包后重复利用当下验证码即可
    解决方案:验证码只要进行过验证,不管是否验证成功,都要进行废弃
    问题4:凭证存于cookie
    原理:验证码组件如果不提供整套存储,只提供验证码明文和加密字符串对应关系的验证,那么只要有一份这样对应关系就可以绕过验证码
    实现手法:手动输入一次,抓包,重放
    解决方案:cookie存于客户端,只能表示一个时间点的状态,可伪造,所以此类凭据应该放在session、缓存之类的地方,不可以放在cookie

短信验证码

短信验证码只能提高被刷成本,无法彻底杜绝非正常用户

活动防刷

通过js脚本预先采集用户设备信息,如:操作系统,浏览器名称,版本,UA,是否启用js,flash,cookie,分辨率,语言,时区,ip等。这些维度将是区分用户唯一性的重要凭据

信息窃取

这个听不懂了,不过大概是讲在没有验证referer的来源,导致可以利用第三方站点更新用户信息之类的

越权

这个其实我就听懂一个:价格之类的信息最好不要放到请求里,而是传ID之类的,后台处理的时候根据ID获取才对

PS:在生活这个强敌面前,我们通常表现得有些懦弱,以至于,我们只能在愚人节这种可以放肆表演荒诞的日子里重寻自我。也许我们只能通过谎言才能抵达真实的自己,每个人对另外的人,都只能通过谎言才敢表达情感,哪怕是爱意与珍惜。我们成为了自己的囚徒,而愚人节成了放风的日子。

你可能感兴趣的:(安全——不是攻坚战而是持久战)