本频道读者中和我一样有自建DNS症状的病友注意更新BIND: https://www.openwall.com/lists/oss-security/2024/07/23/1
🤣4❤2
最新一期鬼故事来了。
某位朋友的网站之前运行的是 FreeBSD 12,后来一路升级,今天他老人家发消息说从 FreeBSD 14.0 升级到 FreeBSD 14.1 之后 MySQL 无法启动了,具体消息是:
我感觉这属于跨版本 ABI 变动没有抓到的重大发布事故,然而我本地的 /lib/libc++.so.1 有这个符号,并且全新安装的一份干净的 FreeBSD 14.1 上无法重现他的问题,于是要了一个 shell 登录上去看。
接下来惊喜地发现他的 mysqld 使用的是 /usr/local/lib/libc++.so.1,该文件是 libc++-208080 提供的。此包删除于2017年 https://svnweb.freebsd.org/ports?view=revision&revision=434738
删掉这个包之后 mysqld 可以动了,但又有了新问题: InnoDB 的 redo log 格式版本是0,新的 MySQL 版本不支持。
于是问题变成了需要找一份旧的 MySQL 来先启动起来,做一个 dump,升级 MySQL,重建数据库,然后从 dump 恢复。但是 MySQL 5.7 并不支持 FreeBSD 14,而且去年年底已经被砍掉了,于是搞了一个 FreeBSD 13.3 的 poudriere builder,把 ports tree 恢复到 2023Q4 来build了一份包,传到该机器上,替换掉 MySQL 8.4,这下 MySQL 终于可以启动了。
mysqldump做完之后安装新版 MySQL,删掉整个 mysql 目录,初始化 MySQL 数据库,将 *.cnf 复制回新的 mysql 目录中,然后 mysql -u root < dump,结果:
所以为什么 MySQL dump的时候连这类 stats 表也跟着一起?因为实在不想再重装一遍 MySQL 5.7,手工编辑了一下dump删掉了innodb的这些stats表的部分,这下再导入时:
这题我会,我想,于是在 my.cnf 中添加了 max_allowed_packet=1024M,这下终于导入成功了。导入之后发现:
然后发现了 https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html 。
嗯。
暂时重新启用了该插件。这下这哥们的网站总算是活过来了。
我觉得这事也不全怪 Oracle,毕竟 MySQL 5.7 在 2019 年就已经停止支持了(我就差跟这哥们说 「#你的备份呢?」 了),不过他们的数据结构支持砍的太激进了点儿。幸亏我手里还有一份之前的源代码可以重新搞一份包,不然这哥们的数据估计就交代了。
顺手看了一眼我自己的 MySQL 实例,发现我的许多 Web 服务也还在用 mysql_native_password。想了想,去票务系统里给自己开了个票,当年(2005)我做网站的时候就已经实现了用户首次登录时,如果密码验证通过的话立即把密码格式换成新的,没想到这都 2024 年了 MySQL 的做法居然是直接把问题丢给DBA……
所以今天的教训是:
1. 我个人的老生常谈:做备份,做备份,做备份。软件和数据都要做备份。
2. 平时没事多做升级,把软件弄到最新版,趁着系统维护的时间把问题暴露出来。
3. 珍爱生命,远离 Oracle 的任何产品。那位说了, PostgreSQL 也要求 dump / restore 不是吗?但人家至少知道每个大版本起一个新的目录。
#今天份草台
某位朋友的网站之前运行的是 FreeBSD 12,后来一路升级,今天他老人家发消息说从 FreeBSD 14.0 升级到 FreeBSD 14.1 之后 MySQL 无法启动了,具体消息是:
ld-elf.so.1: /usr/local/libexec/mysqld: Undefined symbol "_ZTVSt19bad_optional_access"
我感觉这属于跨版本 ABI 变动没有抓到的重大发布事故,然而我本地的 /lib/libc++.so.1 有这个符号,并且全新安装的一份干净的 FreeBSD 14.1 上无法重现他的问题,于是要了一个 shell 登录上去看。
接下来惊喜地发现他的 mysqld 使用的是 /usr/local/lib/libc++.so.1,该文件是 libc++-208080 提供的。此包删除于2017年 https://svnweb.freebsd.org/ports?view=revision&revision=434738
删掉这个包之后 mysqld 可以动了,但又有了新问题: InnoDB 的 redo log 格式版本是0,新的 MySQL 版本不支持。
于是问题变成了需要找一份旧的 MySQL 来先启动起来,做一个 dump,升级 MySQL,重建数据库,然后从 dump 恢复。但是 MySQL 5.7 并不支持 FreeBSD 14,而且去年年底已经被砍掉了,于是搞了一个 FreeBSD 13.3 的 poudriere builder,把 ports tree 恢复到 2023Q4 来build了一份包,传到该机器上,替换掉 MySQL 8.4,这下 MySQL 终于可以启动了。
mysqldump做完之后安装新版 MySQL,删掉整个 mysql 目录,初始化 MySQL 数据库,将 *.cnf 复制回新的 mysql 目录中,然后 mysql -u root < dump,结果:
Access to system table 'mysql.innodb_index_stats' is rejected.
所以为什么 MySQL dump的时候连这类 stats 表也跟着一起?因为实在不想再重装一遍 MySQL 5.7,手工编辑了一下dump删掉了innodb的这些stats表的部分,这下再导入时:
Got a packet bigger than 'max_allowed_packet' bytes
这题我会,我想,于是在 my.cnf 中添加了 max_allowed_packet=1024M,这下终于导入成功了。导入之后发现:
mysql: ERROR 1524 (HY000): Plugin 'mysql-native-password' is not loaded
然后发现了 https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html 。
嗯。
暂时重新启用了该插件。这下这哥们的网站总算是活过来了。
我觉得这事也不全怪 Oracle,毕竟 MySQL 5.7 在 2019 年就已经停止支持了(我就差跟这哥们说 「#你的备份呢?」 了),不过他们的数据结构支持砍的太激进了点儿。幸亏我手里还有一份之前的源代码可以重新搞一份包,不然这哥们的数据估计就交代了。
顺手看了一眼我自己的 MySQL 实例,发现我的许多 Web 服务也还在用 mysql_native_password。想了想,去票务系统里给自己开了个票,当年(2005)我做网站的时候就已经实现了用户首次登录时,如果密码验证通过的话立即把密码格式换成新的,没想到这都 2024 年了 MySQL 的做法居然是直接把问题丢给DBA……
所以今天的教训是:
1. 我个人的老生常谈:做备份,做备份,做备份。软件和数据都要做备份。
2. 平时没事多做升级,把软件弄到最新版,趁着系统维护的时间把问题暴露出来。
3. 珍爱生命,远离 Oracle 的任何产品。那位说了, PostgreSQL 也要求 dump / restore 不是吗?但人家至少知道每个大版本起一个新的目录。
#今天份草台
👍13❤1
说个有点好玩的事。
前段时间在北京,因为手机是漫游,我觉得有必要下载一份离线地图。除了高德地图之外就是苹果地图了,于是在苹果地图下载界面里把北京缩小,然后顺便框上了天津等等周边有可能会去的地方。
开始下载,苹果地图把这块下载区域命名为「河北」。
家住圣何塞,在北京出生长大并且住了二十几年的李先生那一瞬间感觉到技术上这么写确实好像是对的(北平特别市/北京市和天津特别市/天津市在民国和中华人民共和国时期都曾经做过河北省会),但是总觉得有一种哪里好像不太对的、微妙的、受到冒犯的感觉🤣
前段时间在北京,因为手机是漫游,我觉得有必要下载一份离线地图。除了高德地图之外就是苹果地图了,于是在苹果地图下载界面里把北京缩小,然后顺便框上了天津等等周边有可能会去的地方。
开始下载,苹果地图把这块下载区域命名为「河北」。
家住圣何塞,在北京出生长大并且住了二十几年的李先生那一瞬间感觉到技术上这么写确实好像是对的(北平特别市/北京市和天津特别市/天津市在民国和中华人民共和国时期都曾经做过河北省会),但是总觉得有一种哪里好像不太对的、微妙的、受到冒犯的感觉🤣
🕊9
delphij's shared chaos
人们已经开始拍2000年代的怀旧电影了。
Context: https://youtu.be/e6gve8GtSuU
YouTube
DÌDI (弟弟) - Official Trailer [HD] - Only In Theaters July 26
For anyone who’s ever been a teenager. Watch the trailer for Dìdi (弟弟), a film by Sean Wang. Winner of the Special Jury and Audience Award at the Sundance Film Festival. Only in theaters July 26.
Dìdi (弟弟) is written and directed by Academy Award-nominated…
Dìdi (弟弟) is written and directed by Academy Award-nominated…
手上有一本比较厚(接近700面)的非正规出版物(通讯录)想要电子化。之前 Twitter 上的 shuanglin 介绍过一个淘宝上的此类服务,提供 600dpi 超高清扫描,拆书5分/面,但是由于书已经带来美国,另外其内容中有大量PII,因此想说自己先在家拿扫描仪在不拆书的情况下试试看。
由于书很厚,因此比较自然的做法便是把书展直接放到扫描仪的扫描平面上。一试发现果然自己做有不少的坑。
我用的这台 HP OfficeJet 4630 的扫描软件本身提供了自动找到扫描的纸张边界并将其旋转正的功能,此外也会自动调整白平衡和对比度来获得比较好的效果。然而,如果不把书拆开的话,由于书厚度的原因,靠近书脊的部分和扫描平面的距离会比较远,这会导致扫描传感器无法正确对焦,这会导致这些区域的字迹变得模糊,在书靠近中间部分,这种现象会由于两边的自重都不够把书脊压到足够靠近扫描仪传感器而进一步加剧,此时在上面再放一本厚书可以部分缓解,但中间大约4-6列的文字清晰度仍然会差到无法有效进行OCR,也比较影响阅读。
另一方面,由于书使用的纸张比较薄,因此纸张背面的文字会稍微渗过来一些。直接阅读时这一问题影响不太大,但扫描后这一现象就非常明显了。由于两面都做扫描,我认为这一问题可以通过将纸张另一面的内容翻转,选中其中最黑的区域之后将这一形状作为蒙版放到背面扫描数据中,对蒙版选中区域做阈值过滤(此区域中只接受最接近黑色的那部分颜色),或是直接将纸上超过某一阈值的黑色过滤出来再做增强的方法来改善。
如此一来,看上去最好的办法还是把书给拆开扫描了。现在比较不确定的问题是扫描仪的 ADF 对于这种略有年代又比较软的纸是不是很容易卡纸,此外,由于这款扫描仪并没有直接进行双面扫描的能力,也会给后续处理带来一些困难。
由于书很厚,因此比较自然的做法便是把书展直接放到扫描仪的扫描平面上。一试发现果然自己做有不少的坑。
我用的这台 HP OfficeJet 4630 的扫描软件本身提供了自动找到扫描的纸张边界并将其旋转正的功能,此外也会自动调整白平衡和对比度来获得比较好的效果。然而,如果不把书拆开的话,由于书厚度的原因,靠近书脊的部分和扫描平面的距离会比较远,这会导致扫描传感器无法正确对焦,这会导致这些区域的字迹变得模糊,在书靠近中间部分,这种现象会由于两边的自重都不够把书脊压到足够靠近扫描仪传感器而进一步加剧,此时在上面再放一本厚书可以部分缓解,但中间大约4-6列的文字清晰度仍然会差到无法有效进行OCR,也比较影响阅读。
另一方面,由于书使用的纸张比较薄,因此纸张背面的文字会稍微渗过来一些。直接阅读时这一问题影响不太大,但扫描后这一现象就非常明显了。由于两面都做扫描,我认为这一问题可以通过将纸张另一面的内容翻转,选中其中最黑的区域之后将这一形状作为蒙版放到背面扫描数据中,对蒙版选中区域做阈值过滤(此区域中只接受最接近黑色的那部分颜色),或是直接将纸上超过某一阈值的黑色过滤出来再做增强的方法来改善。
如此一来,看上去最好的办法还是把书给拆开扫描了。现在比较不确定的问题是扫描仪的 ADF 对于这种略有年代又比较软的纸是不是很容易卡纸,此外,由于这款扫描仪并没有直接进行双面扫描的能力,也会给后续处理带来一些困难。
PSA: 「EVUS中文网」 并不是美国政府官方网站,而是一家收费不菲的中介机构。目前美国政府对于EVUS登记并不收费。
家里有老人准备来美国探亲的话务必避免让父母自行填写,以防上当。
家里有老人准备来美国探亲的话务必避免让父母自行填写,以防上当。
🤯2
🥰2
https://blog.delphij.net/posts/2024/08/credit-freeze/
洛杉矶时报报道,骇客可能窃取了全部美国人的社会安全号。 https://www.latimes.com/business/story/2024-08-13/hacker-claims-theft-of-every-american-social-security-number
我个人觉得这事可能实际上 #影响不大 ,毕竟大家的全都漏了就等于大家都没漏,在意这个事的商家肯定会增强防范。不过,如果有意去锁定自己的信用记录的话,可以去三家信用记录公司去分别做:
Experian: https://www.experian.com/freeze/center.html
Equifax: https://www.equifax.com/personal/credit-report-services/credit-freeze/
TransUnion: https://www.transunion.com/credit-freeze
当然,这三家机构的草台班子也是罄竹难书的水平,这都2024年了,竟然没有任何一家实现了FIDO2 2FA。
除此之外,还应在国税局启用身份保护验证码 IP PIN,网址是 https://www.irs.gov/identity-theft-fraud-scams/get-an-identity-protection-pin
以及移民局 E-verify 锁定: https://www.e-verify.gov/employees/employee-self-services/mye-verify/self-lock
本文中上述实际需要填写身份信息的网址均以完整形式呈现,尽管这些网站均采用了 https, 但在填写信息之前请再次仔细确认这些网站确实属于与之对应的机构,以免发生次生灾害。
洛杉矶时报报道,骇客可能窃取了全部美国人的社会安全号。 https://www.latimes.com/business/story/2024-08-13/hacker-claims-theft-of-every-american-social-security-number
我个人觉得这事可能实际上 #影响不大 ,毕竟大家的全都漏了就等于大家都没漏,在意这个事的商家肯定会增强防范。不过,如果有意去锁定自己的信用记录的话,可以去三家信用记录公司去分别做:
Experian: https://www.experian.com/freeze/center.html
Equifax: https://www.equifax.com/personal/credit-report-services/credit-freeze/
TransUnion: https://www.transunion.com/credit-freeze
当然,这三家机构的草台班子也是罄竹难书的水平,这都2024年了,竟然没有任何一家实现了FIDO2 2FA。
除此之外,还应在国税局启用身份保护验证码 IP PIN,网址是 https://www.irs.gov/identity-theft-fraud-scams/get-an-identity-protection-pin
以及移民局 E-verify 锁定: https://www.e-verify.gov/employees/employee-self-services/mye-verify/self-lock
本文中上述实际需要填写身份信息的网址均以完整形式呈现,尽管这些网站均采用了 https, 但在填写信息之前请再次仔细确认这些网站确实属于与之对应的机构,以免发生次生灾害。
delphij's Chaos
PSA: 如何给自己的信用记录上锁
根据洛杉矶时报报道,骇客可能窃取了全部美国人的社会安全号。
社会安全号码(Social Security Number, SSN)是依据 42 U.S.C. § 405(c)(2) 发给一部分美国纳税人(包括公民、永久居民,以及有工作许可的临时居住在美国的人员)的一个九位数字。
目前,这个号码是由社会保障署(Social Security Administration)发给这些纳税人的,
尽管社会安全号码的设计本意是帮助社会保障署区分这些纳税人的,但由于它是由联邦机构签发的终生不变的数字,
因此它成了事…
社会安全号码(Social Security Number, SSN)是依据 42 U.S.C. § 405(c)(2) 发给一部分美国纳税人(包括公民、永久居民,以及有工作许可的临时居住在美国的人员)的一个九位数字。
目前,这个号码是由社会保障署(Social Security Administration)发给这些纳税人的,
尽管社会安全号码的设计本意是帮助社会保障署区分这些纳税人的,但由于它是由联邦机构签发的终生不变的数字,
因此它成了事…
😁3❤1
TransUnion的app认为其账户密码只能有最多15个字符,而网站上则没有此限制。家住圣何塞的李先生觉得自己已经快被该公司用最粗的marker笔在名字旁边写上「刺儿头」拉黑了。
🤣5