查看: 1642|回复: 0

科技爱好者周刊(第242期):一次尴尬的服务器被黑

[复制链接]

56

主题

839

帖子

1693

积分

金牌飞友

Rank: 6Rank: 6

积分
1693
飞币
835
注册时间
2017-8-17
发表于 2023-7-29 11:56:08 | 显示全部楼层 |阅读模式
这里记录每周值得分享的科技内容,周五发布。

本杂志开源[1],欢迎投稿[2]。周刊另有《谁在招人》[3]服务,发布程序员招聘信息。合作推广请邮件联系[4](yifeng.ruan@gmail.com[5])。
封面图

上图是2022年世界旅行类摄影师比赛的获奖者。Najin 是非洲中部仅存的两头白犀牛之一,已经33岁了,为了保护它不被偷猎者杀害,肯尼亚政府专门为它安排了守卫。他们形影不离,中午一起在非洲大草原上休息。(via[6])
本周话题:一次尴尬的服务器被黑

本周一凌晨(2月13日),我的个人网站服务器被黑了。

由于入侵者没有触发报警机制,我也没察觉。一觉醒过来,看到好多网友的邮件,让我快去看看网站,访问任何一个网页,都会跳转到 xxx 的外部网址,令人极度尴尬。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w2.jpg

我查了一下服务器,发现果然如此。事态很严重,对方拿到了网页目录的写入权限,将我的所有 HTML 网页都删除了原始内容,写入了他的跳转代码window.。

但是,数据库没有遭到破坏,加上没有 SSH 的异常登录报警,因此我判断,对方没有拿到服务器的登录权限,只是利用了 Web 服务的漏洞。

我的第一感觉不是恐慌,也不是愤怒,而是无奈。担心已久的事情,终于发生了。

很多朋友知道,我的个人网站至少有10年没有修改过样式了。不是不想改,而是没法改,或者说改起来很麻烦。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w3.jpg

原因是我的后台软件采用了早期著名博客软件 MovableType,它的历史比 WordPress 还要悠久。后者已经是老古董了,你就知道它有多老了。当然,这说明我也老了,当年选择它的时候,我还是学生。

MovableType 早就停止发展了,转让给了一个日本公司,所有用户都要缴费,才能收到代码补丁。我没缴费,所以我的个人网站的后台早就老化了。

软件老化本身不是大问题,只要还能正常运行,并且你也不需要新功能,那么就能平安无事地过下去。真正的问题是它的依赖都过时了。

它依赖的底层系统和组件,都严重过时。我试过把它迁移到新系统,结果各种报错,不得不一直运行在很老的系统上。

我一直知道老系统不安全,但是又不敢升级。担心的事情最终还是爆发了。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w4.jpg

前两年,我已经被攻击过一次,当时心存侥幸,只做了一些服务器加固,还是没升级,直到现在。

这次被攻击,我就想如法炮制。网站有定期快照,被黑后,我回滚到最近一次快照,又改了一些服务器设置,星期一中午就把网站恢复上线了,心想最好这次也能蒙混过关。

但是,对方大概一直在线盯着我,上线一小时之内,又被一模一样地黑了。

这时,我知道大事不好,只能将网站再次下线。好在上次被攻击时,我做过一个临时公告页面,这次还能用,把域名指向它即可。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w5.jpg

此后整整一天,我一筹莫展,做好了最坏打算,个人网站可能要长时间下线。在此期间,只能通过临时页面发布内容。

到了星期二下午,我越想越憋气,最后还是不死心,一咬牙决定升级服务器,死马当作活马医。

我一口气把底层系统和依赖组件,都升级到了最近的版本,整整装了一个多小时。这次很神奇,网站没有奇怪的报错,居然能正常运行。惊喜之余,我就把网站恢复上线了,到目前为止都是正常的。

说实话,我不肯定漏洞已经被修复了。如果接下来,服务器再次被黑,我就没辙了,只能长时间下线网站了,然后加快原本就打算今年要做的事情:自己重写博客架构,改成彻底的静态网站。

这次的教训有很多,如果大家也想做一个独立博客,我有两点建议。

(1)不要自己管理服务器。 服务器管理是一个非常繁琐的专门工种,如果不是专业的运维工程师,很难做好。退一步说,即使你拥有这方面的专业知识,也不值得把大量时间和精力投入在自己的博客服务器上。网络世界是一个黑暗森林,到处都有人向你打冷枪,防不胜防,解决方法就下一条。

(2)使用专业的云服务商。 现在大部分云服务器商,都有静态网站托管服务,把静态网页托管在它们那里,省时省心。如果你需要后端动态生成内容,那就使用云函数(叫做 FaaS),通过服务商提供的边缘计算、而不是你的主机自带的 CPU 算力。
科技动态

1、老飞机的模拟飞行[7]

微软公司有一款著名的游戏《微软模拟飞行》,玩家可以模拟操纵各种飞机,在世界各地实景飞行,效果非常逼真。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w6.jpg

游戏制作团队最近盯上了博物馆里面的老飞机,其中就有著名的休斯 H-4 大力神巨型水上运输机。

这是有史以来最大的飞机,跟足球场差不多大小。它只在1947年飞行过一次,短暂脱离水面数十秒,然后就放在仓库里,直到报废后移入博物馆。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w7.jpg

科技爱好者周刊(第242期):一次尴尬的服务器被黑w8.jpg

微软公司把这架飞机搬入了游戏,玩家现在可以模拟驾驶它,体验一下这架传奇飞机的驾驶感受。下图就是游戏画面。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w9.jpg

制作团队下一步准备把更多的老飞机搬入游戏,“复活”那些再也不可能上天的飞机。目前,已经完成了大约300架老飞机的扫描。

2、迪斯尼的年龄调整算法[8]

迪斯尼公司发布了一个影视专用的年龄调整算法,可以让演员变得更年轻或更年老。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w10.jpg

这种算法可以让老年演员扮演年轻人,反之亦然。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w11.jpg

现在的观众必须明白,你看到的一切都可能是假的。相貌可以美颜,年龄可以加减,背景可以绿幕,没有什么是做不到的。

3、儿童游乐场[9]

儿童游乐场通常都是一些传统设施,比如滑梯、秋千、双杠、跷跷板等。

一位新西兰建筑师认为,这些设施都没有乐趣,模仿大自然的环境才是更好的选择。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w12.jpg

他就设计了一个类似野外环境的儿童游乐场。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w13.jpg

游乐设施都搭建在巨石之上,但其实没有看起来那么危险,巨石都由钢棒进行固定,地面采用有弹性的橡胶地板,不会摔伤。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w14.jpg

开张一个月以来,孩子们很爱玩,没有人受伤。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w15.jpg

4、智能绷带[10]

传统绷带无法知道伤口愈合情况,有时解开绷带,才发现药物无效,伤口还在溃烂。

为了解决这个问题,一个国际研究团队开发了智能绷带。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w16.jpg

这种智能绷带采用超薄、可弯曲的电路板,会自动侦测伤口愈合程度,根据细菌的繁殖情况释放抗生素或其他药物。

它带有无线模块传送数据,为了轻薄,它不带有电池,通过天线接收能量。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w17.jpg

文章

1、Next、Nuxt、Nest的区别[11](英文)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w18.jpg

Next.js、Nuxt、NestJS 是三个流行的 JS 框架,本文解释它们的区别。

2、为什么业界转向内存安全语言[12](英文)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w19.jpg

本文介绍大公司使用内存安全语言(Java、Rust 和 Kotlin)替代 C/C++ 的情况。

3、如何使用 360 相机生成航拍图像?[13](英文)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w20.jpg

作者介绍如何使用 OpenDroneMap 这个软件,为 360 相机拍摄的视频建模,合成为航拍视角的空间图像模型。

4、打造我的家庭办公环境[14](英文)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w21.jpg

作者详细介绍,自己怎么在家里布置一个舒适的电脑工作环境。

5、我如何以 SerenityOS 谋生[15](英文)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w22.jpg

作者是开源软件 SerenityOS 的作者,2021年开始,全职投入开源开发。他介绍自己怎么谋生。

6、我的个人 IT 基础设施[16](英文)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w23.jpg

Mathematica 软件的创始人 Stephen Wolfram 介绍自己家里的 IT 基础设置,他常年在家办公。

他还自制了一个“步行桌”(上图),可以在散步的时候,使用笔记本电脑。

7、Playwright 如何绕过登录验证码[17](英文)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w24.jpg

Playwright 是一个无头浏览器框架,可以编写脚本,对网站 UI 进行自动化测试。有些网站的登录,需要身份验证器的一次性验证码,怎么绕过去呢?

8、使用 Ruby 语言理解网络堆栈[18](英文)

本文使用 Ruby 语言示例,解释网络基本概念。第一部分解释 UDP 协议,写得很好。
工具

1、Convex[19]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w25.jpg

一个类似 Firebase 的状态管理服务,前端状态可以存在它的服务器上,然后你的所有客户端都可以得到状态的实时更新。

2、兔年定制头像[20]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w26.jpg

上传照片,合成一张兔年头像,多种样式可选,代码开源[21]。(@xiaoli1999[22] 投稿)

3、ElasticView[23]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w27.jpg

一款 ElasticSearch 的桌面客户端,用来监控 ES 状态和操作。( @lin2415016[24] 投稿)

4、RATH[25]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w28.jpg

开源的数据分析和数据可视化工具,只需要导入数据,它自动进行数据分析,找出规律,生成可视化视图。(@AntoineYANG[26] 投稿)

5、tl-rtc-file-tool[27]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w29.jpg

一个 Web 应用,演示了基于 WebRTC 的各种媒体流传输功能,代码开源[28]。(@iamtsm[29] 投稿)

6、EasyNode[30]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w30.jpg

简易的个人 Linux 服务器管理面板(基于Node.js),前后端都开源。(@chaos-zhu[31] 投稿)

7、vscode-gptcommit[32]

VS Code 插件,使用 GPT 模型自动生成 Git 提交说明。(@pwwang[33] 投稿)

8、Tweek Calendar[34]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w31.jpg

一个最简化的任务管理 Web App,非常简洁精美。

9、BetterDisplay[35]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w32.jpg

一个开源的 MacOS 应用,可以精细调节苹果电脑的各种显示参数。

10、berty[36]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w33.jpg

一个群聊应用,最大特点就是不需要互联网,通过低功耗蓝牙通信,很适合小范围内的现场广播。
资源

1、Mastering Bitcoin[37](第二版)

科技爱好者周刊(第242期):一次尴尬的服务器被黑w34.jpg

免费的英文电子书,介绍加密货币的原理。

2、satellite-track[38]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w35.jpg

基于 Web 的卫星轨道可视化项目,可以查看不同类别的卫星,代码开源[39]。(@jiangteng2019[40] 投稿)

3、tabler-icons[41]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w36.jpg

这个网站提供免费的图标,目前有1900多个,所有图标都是统一风格,简单美观。

4、Some Assembly Required[42]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w37.jpg

一份图文并茂的汇编语言英文介绍,针对零基础的初学者,半小时可以读完,并附有代码示例,以便进一步学习。

5、快速涂鸦[43]

科技爱好者周刊(第242期):一次尴尬的服务器被黑w38.jpg

一个谷歌推出的小游戏。系统告诉你一个词语(比如自行车、眼镜、轮船……),让你在网页上把它画出来。人工智能会猜测你画的是什么,只要猜对了,就说明你画得很像。
图片

1、奥尔梅克头像[44]

1930年代,危地马拉发现了埋在地下的巨大头像,高度都在2米到3米。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w39.jpg

考古学家认为,它们是古代奥尔梅克人制作的,时间大约距今3000年到5000年之前。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w40.jpg

经过几十年的发掘,目前一共发现17个头像,现在都陈列在博物馆[45]。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w41.jpg

科技爱好者周刊(第242期):一次尴尬的服务器被黑w42.jpg

文摘

1、苹果收购 NeXT 的往事[46]

二十五年前的1996年12月20日,我在 NeXT 公司担任系统工程师。该公司是乔布斯在1985年创立的,我是该公司在加拿大仅有的三名员工之一。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w43.jpg

当时我们都没有手机,公司给我们的大多数信息都通过一个叫做 Audix 的语音邮件系统传送。我们接受消息时,就拨打 1-800-345-5588 这个号码,收听语音邮箱里面的公司留言。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w44.jpg

那天,我们突然收到了一条紧急消息,所有员工都必须在下午2点拨打这个号码,要公布一个重大事件。当时我正在街上,不得不到处寻找一个可靠的固定电话,最后找到了一个博物馆的付费电话。

到了下午2点,我们被告知 NeXT 已被苹果公司以4亿美元的价格收购。(事后回想,正确的说法应该是苹果付给 NeXT 4亿美元,让后者去收购自己。几年后,大约70%的苹果副总裁都来自 NeXT。)

我震惊了,没想到事情会这样。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w45.jpg

当时,NeXT 公司其实很困难。创始人乔布斯似乎把所有的时间,都花在他的另一家公司 Pixar。虽然 NeXT 还有一些盈利,但主要来自销售 WebObjects(一个 Java 应用服务器)。乔布斯对外宣称的革命性新工作站和操作系统都实现不了,现在他只能靠销售价格为5万美元企业服务器软件维持公司,这一定让他感到很沮丧。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w46.jpg

苹果公司似乎也陷入了死亡漩涡,并且已经非常接近资金枯竭。

苹果最感兴趣的是 NeXT 的 NeXTSTEP 操作系统,该操作系统最初与 NeXT 工作站一起提供,但已被移植到英特尔 CPU。说实话,我们在 NeXT 的人其实不怎么用这个系统。

科技爱好者周刊(第242期):一次尴尬的服务器被黑w47.jpg

NeXT 的每个人都不清楚这次合并是否会奏效,好在结果很不错。合并发生在苹果的历史低点,一旦乔布斯重新担任苹果 CEO,一场难以置信的技术和业务转变就开始发生了。

NeXT 的软件和硬件成为苹果一切产品的基础。NeXTSTEP 操作系统替代了 Mac OS,成为了 Mac OS X 的基础;NeXT 的 Project Builder 和 Interface Builder 变成了 Xcode;NeXT 对 Objective-C 语言的热爱最终创造了 Swift。

合并时,NeXT 大约有 400 名员工,而苹果只有几千人。今天,苹果有16万员工,我很好奇多少 NeXT 工作人员还留在苹果,我知道十几个,可能还有更多,会到100人吗?
言论

1、

我是 React 用户,最让我烦恼的是,React 团队对开发者面对的实际问题,似乎一无所知,只关注一些不那么重要的事情。

他们设计了很多新的做法(比如事件处理、数据获取等等),确实可以更快地加载网页。但是让开发者关注这些东西,对于高级用途来说,这是完全错误的。

-- 《拯救 React》[47]

2、

领导者的作用不是行使权力,而是分配权力。

有效的领导者通过设定方向、确定人员(找到具有正确技能和背景的人)、授权他人、确保决策执行,来节省自己的时间,并扩大自己的影响。

-- 《我的创业箴言》[48]

3、

在程序员心中,他们认为自己是建筑师。当他们来到一个新地方,他们想做的第一件事就是推平这个地方,并建造一些宏伟的东西。

程序员对渐进式翻新不感兴趣:修修补补、改进、在花坛种上绿植……他们不想做这些事,他们总是想扔掉旧代码并重新开始,原因并非是认为旧代码一团糟,而是编程的一个基本法则:阅读代码比编写代码更难。

-- Joel Spolsky[49]

4、

开发 Chrome 浏览器时,有一次我们讨论,应该允许网页重定向多少次。有人提出设为10次,超过这个数字,Chrome 就会放弃加载网页。然后,另一个人说不行,必须设为30次,否则《纽约时报》网站就会停止工作。于是,Chrome 的重定向上限就是30次。

-- 《我在 Chrome 团队的10年》[50]

5、

曾经有一段时间,成为一名全栈开发人员是可能的,可以做到对中等复杂系统的每一层都有很好的熟悉度。

但是,今天的系统涉及太多的组件,想要掌握每个堆栈的每个组件,是不切实际的。正如一位开发者所说:“程序员现在不得不在数百个 API 之间充当某种巨大的手动管理层。”

-- 《更快的马》[51]
历史上的本周

你做过不在乎结果的项目吗?(2022 No.195)

大家不出门,经济怎么办?(2021 No.145)

漫游类的游戏,将会越来越多(2020 No.93)

一篇好玩的论文(2019 No.43)
鸣谢

周刊得到国内新一代知识管理与协作平台 FlowUs[52] 的帮助,深表感谢。

FlowUS[53] = 文档 + 表格 + 网盘。你可以用它写文档、做主页、管理数据、存储文件等等。

每一期周刊同时发布在 FlowUs 专栏[54],欢迎大家也去开通自己的专栏和主页。

(完)
References

[1] 开源: https://github.com/ruanyf/weekly
[2] 投稿: https://github.com/ruanyf/weekly/issues
[3] 《谁在招人》: https://github.com/ruanyf/weekly/issues/2827
[4] 邮件联系: mailto:yifeng.ruan@gmail.com
[5] yifeng.ruan@gmail.com: mailto:yifeng.ruan@gmail.com
[6] via: https://www.tpoty.com/galleries/2022-winners/
[7] 老飞机的模拟飞行: https://www.yystv.cn/p/10140
[8] 迪斯尼的年龄调整算法: https://gizmodo.com/whats-next-arecibo-observatory-collapse-2-years-later-1849836610
[9] 儿童游乐场: https://www.core77.com/posts/117655/Artist-and-Structural-Engineer-Designs-Risky-Playground
[10] 智能绷带: https://www.inverse.com/innovation/self-healing-bandage-wireless
[11] Next、Nuxt、Nest的区别: https://www.twilio.com/blog/comparing-nextjs-nestjs-nuxt-gatsby
[12] 为什么业界转向内存安全语言: https://www.darkreading.com/application-security/shift-memory-safe-languages-gains-momentum
[13] 如何使用 360 相机生成航拍图像?: https://jakecoppinger.com/2022/12/creating-aerial-imagery-with-a-bike-helmet-camera-and-opendronemap/
[14] 打造我的家庭办公环境: https://arun.is/blog/desk-setup/
[15] 我如何以 SerenityOS 谋生: https://awesomekling.github.io/How-I-make-a-living-working-on-SerenityOS/
[16] 我的个人 IT 基础设施: https://writings.stephenwolfram.com/2019/02/seeking-the-productive-life-some-details-of-my-personal-infrastructure/
[17] Playwright 如何绕过登录验证码: https://blog.checklyhq.com/how-to-bypass-totp-based-2fa-login-flows-with-playwright/
[18] 使用 Ruby 语言理解网络堆栈: https://medium.com/geckoboard-under-the-hood/how-to-build-a-network-stack-in-ruby-f73aeb1b661b
[19] Convex: https://www.convex.dev/
[20] 兔年定制头像: https://www.xiaoli.vip/rabbit/
[21] 开源: https://github.com/xiaoli1999/custom-rabbitImage
[22] @xiaoli1999: https://github.com/ruanyf/weekly/issues/2898
[23] ElasticView: https://github.com/1340691923/ElasticView
[24] @lin2415016: https://github.com/ruanyf/weekly/issues/2887
[25] RATH: https://github.com/Kanaries/Rath
[26] @AntoineYANG: https://github.com/ruanyf/weekly/issues/2892
[27] tl-rtc-file-tool: https://im.iamtsm.cn/
[28] 开源: https://github.com/iamtsm/tl-rtc-file
[29] @iamtsm: https://github.com/ruanyf/weekly/issues/2893
[30] EasyNode: https://github.com/chaos-zhu/easynode
[31] @chaos-zhu: https://github.com/ruanyf/weekly/issues/2897
[32] vscode-gptcommit: https://github.com/pwwang/vscode-gptcommit
[33] @pwwang: https://github.com/ruanyf/weekly/issues/2890
[34] Tweek Calendar: https://tweek.so/
[35] BetterDisplay: https://github.com/waydabber/BetterDisplay
[36] berty: https://berty.tech/
[37] Mastering Bitcoin: https://github.com/bitcoinbook/bitcoinbook
[38] satellite-track: https://jiangteng2019.github.io/satellite-track/
[39] 开源: https://github.com/jiangteng2019/satellite-track
[40] @jiangteng2019: https://github.com/ruanyf/weekly/issues/2888
[41] tabler-icons: https://tabler-icons.io/
[42] Some Assembly Required: https://github.com/hackclub/some-assembly-required
[43] 快速涂鸦: https://quickdraw.withgoogle.com/
[44] 奥尔梅克头像: https://www.miamighostchronicles.com/stranger-than-fiction/the-olmec-mystery
[45] 博物馆: https://en.wikipedia.org/wiki/Olmec_colossal_heads
[46] 苹果收购 NeXT 的往事: https://blog.hayman.net/blog/2021/12/20/apple-next-25-years-ago-today/
[47] 《拯救 React》: https://acko.net/blog/get-in-zoomer-we-re-saving-react/
[48] 《我的创业箴言》: https://hackernoon.com/optimize-for-alignment-not-control-great-leaders-serve-and-more-startup-mantras
[49] Joel Spolsky: https://www.devshirt.club/developer-shirt/its-harder-to-read-code-than-to-write-it
[50] 《我在 Chrome 团队的10年》: https://neugierig.org/software/blog/2022/12/chrome.html
[51] 《更快的马》: https://redmonk.com/sogrady/2022/12/09/faster-horse/
[52] FlowUs: https://flowus.cn?promotionChannel=GW_RYF_01
[53] FlowUS: https://flowus.cn?promotionChannel=GW_RYF_01
[54] FlowUs 专栏: https://ruanyf-weekly.flowus.cn/?code=FLOWUS&promotionChannel=WX_RYF_00
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表