修复群晖 GitLab 升级失败的问题

如果你最近使用群晖套件中心的 GitLab( 9.4.4-0050 ) ,并且勾选转换数据库( MariaDB => postgresql ),那么你很可能遇到丢失数据的问题( Version: 10.6.4-0051 ).表现为打开 GitLab 首页提示设置 root 密码,登录后台显示所有项目丢失.

一行代码与两个漏洞

某日帮客户处理后台问题,途中需要阅读代码,随眼一扫,感觉问题太多,以管理员登录后台为例

$data['admin_pass'] = md5(strtolower($_POST['admin_pass']));

短短的一行代码可以看到其中包含两个缺陷:

将用户输入转为小写,导致密码不区分大小写.

以允许使用英文和数字的 8 位密码为例,区分大小写有 218340105584896 种可能,不区分大小写只有 2821109907456 种可能,两者差距约为 77 倍,增加了密码被破解的可能性.

没有正确使用加密算法.

虽然 MD5 是一种不可逆的算法,但是网络安全人员通过彩虹表可以逆向查询到原始密码.破解的大致流程是这样的,首先计算出所有密码的可能性(原文),然后进行加密运算得到密文.当需要破解某个密码的时候,直接查询密文比对出原文即可得知明文密码.

为了对抗彩虹表攻击,开发人员曾使用增加 salt 的方式来增加攻击者成本.

md5('password' . 'salt')

知名论坛程序 Discuz! 就使用了类似的方式.一时间开发人员纷纷加盐,活脱脱咸菜世家的节奏.

现在的解决方案.

都 8102 年了,对技术稍微有点追求的开发者都在使用 bcrypt 了!

写在冥王峡谷上市之前

我对迷你尺寸的 PC 一直情有独钟,尤其是 NUC :巴掌大的体积,媲美台式机的性能.符合我对小钢炮的全部想象.前些日子听说 Intel 和 AMD 联手打造了新一代旗舰 NUC8i7HVK ,于是捣鼓两句权当纪念兢兢业业陪伴我加班的小骷髅.

没有跑分,没有对比,没有开箱,只有碎碎念.

前年因工作需要,编译和读写大文件成为了我的日常.主力机 MacBook Pro ( 2014 Mid )有些力不从心,耗时太久.曾帮网友配了一台骷髅峡谷,对它的表现印象极其深刻,于是拔草.

整机配置为:

CPU + 主板 Intel NUC6i7KYK
硬盘 samsung 850 EVO 500G
内存 金士顿骇客神条 Impact 系列 DDR4 2133 32G ( 16G * 2)

在后续的使用中,标压满血的 i7-6770HQ 表现凶残.原本需要 30 分钟的工作不到 5 分钟就完成了.对此我非常满意.这里我强行按捺怒火忍住了对 Windows 10 ( Bug 10 )的吐槽.

槽点不多.一是被 Intel 寄予厚望的锐炬显卡表现差强人意,在运行 FFX 时 1080P 的分辨率下也无法开启最高特效.二是经常会听到如同直升机起飞的噪音,听得久了习惯了,感觉很踏实.小家伙仿佛在和我说:嘿,我在努力工作,你也别偷懒.让它干的总是累活,有时会产生雇佣童工的错觉.不知道 ITX 神教的信徒听到这段话会作何感想.

后来换了新电脑,性能强大,骷髅就闲置了.本着物尽其用的原则,帮它寻了新的下家,至此阶段性目标圆满达成,本季终.

用 Apple Watch 或 iPhone 上的 NFC 充当门禁卡解锁

Apple Pay 在中国推广缓慢,支持的地方少之又少,远不如支付宝和微信支付来得方便.在漫长的等待之后,中国用户终于迎来了一个略微有用的功能: Apple Pay 充当公交卡.

可惜的是,国内尚未有全国通用的一卡通,本次 Apple Pay 也仅仅支持了北京和上海两地.这让其它地域的小伙伴如何愉快玩耍?别慌, 04 给你出个主意: 门禁卡.

适用设备

设备必须支持 NFC ,具体可查询此处.

玩耍步骤

  1. iOS 上打开钱包 – 右上角加号 – 公交卡,北京一卡通最低只需预存 5 元即可(服务费另计).
  2. 开卡后在需要解锁的设备上授权,比如智能门锁或小区门禁.
  3. 可将卡片转出到 Apple Watch 上,避免忘记携带手机的悲剧.

Pixelmator 和 Pixelmator Pro 的简单对比

得益于订阅官方新闻,第一时间入手了 Pixelmator Pro( 下文称专业版 ),经过几天的简短试用,说说感想.

薄暮嫩江

此去经年.

借助 rubyc 打造跨平台的绿色软件

什么是 rubyc ?

齐齐哈尔市梅里斯达斡尔族区

随便拍拍~

为 HTTPS 网站启用 HSTS

什么是 HSTS ?

借用维基百科的介绍,HTTP Strict Transport Security翻译为 HTTP 严格传输安全,网站部署该策略后,浏览器会强制启用 HTTPS , 以降低被劫持的风险.

说说数据备份中的要点

最近勒索病毒爆发”严重”,原本这不是啥问题,背后利用的ms17-010微软早就提供了补丁KB4013389.无奈”补丁无用论”者众多,”伪数据无价”者又从不备份,于是狠狠地挨了巴掌.风险暴露越早,损失越少,这其实是件好事.

当然这不是本文的主旨,这次以Beta!为例,说说备份方案中要注意的地方.

整体方案

  • 使用阿里云 ECS + 云盘,官方宣称三份备份,可用性 99.9999999% .同时设置了自动备份.
  • 亚马逊 S3 作为异地容灾,数据库和附件定时上传,设置生命周期管理,以降低成本.

要点总结

  1. 全盘备份.不要遗漏重要数据.
  2. 支持快照.多份快照可有效对抗勒索病毒和误操作.没删过库的运维不是好开发.
  3. 异地容灾.鸡蛋不要放在一个篮子里,不要过度依赖同一家厂商.
  4. 定期校验.不要等到用的时候才发现备份有问题,要定期演练,确保备份一直可用.
  5. 控制成本.较低成本有助于降低推行灾备方案的阻力.
  6. 备份加密.确保访问备份数据的权限最小化,避免泄密.