[摘要]程序员的你,做过什么傻傻的事情?在我的第一份PHP工作中,我被要求建立一个内容管理系统的后端。由于我刚出学校, 过分自信又缺乏经验,我忽视了正确转义SQL语句中...
程序员的你,做过什么傻傻的事情?
在我的第一份PHP工作中,我被要求建立一个内容管理系统的后端。由于我刚出学校, 过分自信又缺乏经验,我忽视了正确转义SQL语句中的用户输入。结果,第一个提交表单的数据就导致了SQL注入,主管在测试的时候获取了数据库的 root访问权限。这可能会造成了极大损失和一个严重的数据泄露安全漏洞。这教会了我永远不要高估自己的能力,总是要仔细检查用户输入的数据。
另一个错误是在处理用户上传文件的程序中,我忽略了检查文件的真实MIME类型。某天有人上传了一个命名为 "photo.jpg" 的PHP脚本,我的程序把它当成了一张图片,导致这个PHP shell文件执行,并入侵了服务器。虽然没有造成大的琐事,但这是PHP程序员经常犯的错,教会了我永远验证和不信任用户的输入。
还有一次,我写了一个依赖宽松的正则表达式来验证用户名的网站注册程序。有人利用其中的一个复杂的正则表达式漏洞达到十万次调用,占用了大量CPU并导致网站崩溃。这让我学到了永远要小心地编写和测试正则表达式,以防ReDoS等攻击。
通过这些痛苦的教训,我学到了仔细检查用户输入、谨慎地编写复杂代码、不要高估自己的技能等等。经验是最好的老师,我确信将来不会再犯这样愚蠢的错误了。实践出真知,我也理解为什么HR通常更喜欢有经验的程序员。
程序员的你,做过什么傻傻的事情?
初入公司的时候,主管说把手上代码都提交下,大家都提交了,我也提交了,可是主管更完代码后立马就炸了,怎么这么多报错,接下来看错误信息,定位问题,最后发现配置文件不对了,然后还发现少了一个类,最后还发现一个类中的某个方法怎么也被改了!
然后查看提交记录,发现都是尼玛我提交的东西出错了,我不仅提交了本地测试的代码,还提交了配置文件,包括一些乱七八糟的文件,都提交了。最后主管跑到我工位上看我代码:尼玛!你提交了整个项目 !!
你怎么把别人这个类也删了——我测试个东西,这个类我放到桌面了,待会测完再放回来。那你怎么提交了整个项目,你改了啥测好了就提交啥啊——我我我手误手误 ,主管嗓门也高,然后不啦不啦一通说。
那个时候刚入门,svn还没有实操经验第一次玩 ,至于本地测试也只是练手瞎搞,唉,没想到啊没想到,沙雕到家了