一次惊心动魄的文件删除

简介: 今日在博客园看到了关于“印象最深的一个bug”的活动。回想起了从业早期的一个记忆犹新的BUG处理经历。

今日在博客园看到了关于“印象最深的一个bug”的活动。回想起了从业早期的一个记忆犹新的BUG处理经历。


那时自己和朋友建了一个移动端小工具的创业项目。后端使用的PHP,已经积累了一些付费用户。一天部分客户反应,他们在APP中生成的预览图形打不开了。


于是我开始排查这个问题。好家伙,何止这个用户的预览图不见了,所有用户的预览图都没了。我慌的一头汗。


由于迭代比较频繁,首先想到的是,是不是在发布产品时候误删除了资源。是不是服务器被黑了。


焦虑的对几种分析验证后,发现,都不是。直到我回到代码中,发现了这么一段:

public function delFile($file)
    {
            $url = "/mypath/" . $file;
            unlink($url);
    }


这个函数当file传空字符串会发生什么呢。

问题就在这里。会把整个mypath文件夹下的文件都删除了。

查询日志发现果然如此。

于是我给file加了非空断言。恢复用户的预览图片。


现在回忆起来,虽然这是一个低级的错误。但是仍然具有某种普遍性。

我给它总结为,使用条件删除资源时的范围风险。


比如下面这段spring boot 代码:

apiSensorConfigMapper.delete(new QueryWrapper<ApiSensorConfigEntity>()
.eq("sensor_mac_addr", mac));


当mac为空时候会发生什么呢。即使它不会删库,是不是也会觉得很危险。

好嘛,这种情况我必须加非空断言!


小小分享希望对大家有用。


吐槽一下活动要求要写500字。也不知道我这够不够。

相关文章
|
1月前
|
存储 安全 Windows
电脑桌面文件不见了怎么恢复?8个方法帮你解决问题
电脑桌面文件突然不见了凭空消失了怎么恢复?电脑桌面文件日常使用电脑时,很多用户喜欢将重要文件、快捷方式存放在桌面上,以方便快速访问。然而,有时我们会突然发现桌面上的文件不见了。桌面文件消失可能有多种原因,例如误删除、系统更新、设置变更等。今天给大家介绍一些桌面文件丢失的常见的原因以及如何找回丢失的文件。
|
6月前
|
搜索推荐
感谢wps备份功能 救了我一命
感谢wps备份功能 救了我一命
51 0
|
存储 Linux
翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。
翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。
|
安全 Windows
Win系统 - 更新后,竟有这么“严重”的后果?
Win系统 - 更新后,竟有这么“严重”的后果?
170 0
Win系统 - 更新后,竟有这么“严重”的后果?
|
关系型数据库 MySQL 数据库
一招教你防止删库跑路!!
一招教你防止删库跑路!!
293 0
一招教你防止删库跑路!!
|
Java
连文件搜索都不会用,也不自己反省一下?
连文件搜索都不会用,也不自己反省一下?
95 0
|
运维 分布式计算 Hadoop
误删文件的经验之谈
一、引言   曾经在运维hadoop集群的时候,出过这么一回事:当时集群因为需要维修机器所以进行停机维护,但是当启动集群的时候发现集群怎么也起不了,在没有问别的同事的情况下,自己百度了一下问题,发现format操作能解决问题,当时的我对于format是一知半解,后来执行format以后集群是起来了,但是数据没有了。追悔莫及已经没有用了,只能对自己说吃一见长一智;这明显就是误操作导致数据被删。今天就来聊一下怎么能防止误删文件! 二、防止误删数据技巧:   1、修改或删除数据前请务必备份,最好有异机备份,修改配置等先提交版本管理系统在发布到线上环境。   2、可以使用mv命令替代rm命令,
134 0
|
安全 数据安全/隐私保护
WannaCry感染文件恢复方法,企业再也不用愁了!
WannaCry感染文件恢复方法,已经感染的电脑文件要如何恢复?我们发现代码中充满了错误,受害者能够利用一些简单命令就恢复文件,企业再也不用愁了!
7522 0
|
安全 数据安全/隐私保护
StalinLocker:一款会在十分钟之后删除文件和数据的勒索软件
如果你的电脑屏幕上出现了以下界面,千万不要以为是一款什么游戏的广告。 这是Canthink网络安全攻防实验室新发现的一个名为“StalinLocker (斯大林锁屏者)”或“StalinScreamer (斯大林尖叫者) ”的勒索软件。
1674 0