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

密码找回的陷阱
本文讲述了一个在线交易系统中密码找回功能存在的安全隐患。尽管程序员采取了多种措施来保护系统,但黑客通过巧妙利用业务逻辑漏洞,成功获取了部分用户的账户密码。
        程序员和黑客有种天生地说不完道不尽的恩怨纠缠,很多计数很高超的黑客同时也都是技术高超的程序员,但是大多数程序员却在同黑客做着生死抗争,特别是编写在公网上运行的业务系统的程序员,更是步步小心.但是与黑客相比,程序员的制肘更多一些,黑客往往只需要一个漏洞就可以逍遥了,但是程序员却要步提防,因为一个小漏洞就可能让自己陷入麻烦.程序是一个有机的整体,并不是所有的代码都无懈可击了的时候就能高枕无忧了,很多时候看来安全的系统却是到处都是口子,我们来看一个例子.
        系统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日志推导出的。
         这里提醒各位,很多时候不要光把眼光局限在代码本身,代码外的业务逻辑上如果有了漏洞也是非常的致命的。
内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值