编写安全的代码-程序员头顶的达摩克利斯之剑

本文讲述了一个在线交易系统中密码找回功能存在的安全隐患。尽管系统采用了安全的ORM组件避免SQL注入,但忽视了业务逻辑层面的安全性,导致黑客通过简单手段获取大量用户密码。
        程序员和黑客有种天生地说不完道不尽的恩怨纠缠,很多计数很高超的黑客同时也都是技术高超的程序员,但是大多数程序员却在同黑客做着生死抗争,特别是编写在公网上运行的业务系统的程序员,更是步步小心.但是与黑客相比,程序员的制肘更多一些,黑客往往只需要一个漏洞就可以逍遥了,但是程序员却要步提防,因为一个小漏洞就可能让自己陷入麻烦.程序是一个有机的整体,并不是所有的代码都无懈可击了的时候就能高枕无忧了,很多时候看来安全的系统却是到处都是口子,我们来看一个例子.
        系统A,是一个在线的交易系统,里面有用户注册功能,但是因为用户常常忘记自己的密码,所以提供了一个密码找回的功能.这里因为系统A使用的严格测试过的ORM的DataMapping组件,所以不存在任何注入的问题,所以用SQL注入看来是没戏了,但是这样子就安全了吗?所以程序员Z同学又在找回密码的地方作了很多加强安全性的处理,但是用户都有不好的习惯,因为嫌麻烦,很多时候用户的找回密码提示和答案都是一样的,Ctrl C,Ctrl V比较快嘛。所以在这里他首先是对IP进行限制,一个IP在30秒内只能请求3次,然后是账号每个帐户在找回密码的时候只能输错3次验证码,如果超过3次就提醒用户你的帐户今天不能再找回了,已经被冻结了,请明天再试。现在看起来这个系统真的是固若金汤了吧。
        其实安全就素那浮云一般,真的安全就是关掉服务器 。我们来看黑客H同学是如何简突破系统的,首先黑客H同学是菜鸟黑客,只会使用朔雪等,他在系统A有帐号,在找回密码的页面随便输入了一些东西后,他拿出工具开始写脚本。首先他要工具不停的根据字典请求字典上的用户名去找回密码,验证码随便输因为那个已经不重要的,他设定每个用户名只请求4次,然后分析回馈的结果HTML,如果找到“你的帐户今天不能再找回了”的字符串就把这个请求的用户名记录下来,因为这表明这个用户已经是在系统中存在的用户名。然后H同学就把这个工具放到了师傅送他的几个肉鸡上,然后就在等待结果了。
         第二天,H同学打开自己邮箱查看战果,这个时候工具已经找到了一千多个账号了,由于无法突破验证码,于是他决定手工来做,用已经找到的用户名,答案直接用找回密码提示,这样子经过一下午的努力,H同学获取到了80多个帐户的密码,每个帐户每月的消费限额是200元,这样子,经过2天的努力,菜鸟黑客H同学就获利1600元了。
         这里除了H同学是虚构的外,整个事件是真实案例改编,H同学的行为是通过分析IIS日志推导出的。
         这里提醒各位,很多时候不要光把眼光局限在代码本身,代码外的业务逻辑上如果有了漏洞也是非常的致命的。
乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值