为WordPress添加外部链接图标

!:此文章中提供的代码存在问题,亟待修改,勿用于生产环境。 许多网站使用形如"指向右上方的箭头"的图标来标示页面中的外部链接,我们计划为WordPress引入此功能,并使用于文章和评论内容中。 构建一个新的插件,或在当前使用的主题的function.php中插入如下内容: function external_…

Read More

编译安装nghttp2(启用apps)

众所周知,HTTP/1.1是一个文本协议,而HTTP/2除Header外皆使用无法直接阅读的二进制编码。在一些情况下,我们需要将HTTP/2与HTTP/1.1相互转换(下简称:翻译)。 nghttp2是一个用C编写的HTTP/2实现,…

Read More

对一次网络攻击的调查(及教训)

2018年5月18日,我偶然发现自己的博客的404页面上出现了一串奇怪的数字。它的一部分被某些HTML元素遮挡了,但我还是通过浏览器的开发者工具得到了它——8194460 接下来我做了一件大错特错的事——在Wordpress中将Wordpress和官方的主题全都更新了,这直接使得很多证据丢失了。 反混淆 我透过SSH连接至主机,发现站点根目录下多了一个名为assets的目录,而下载WordPress本身是不含这个目录的。其中只有一个文件(assets/picture/…

Read More

LaTeX test

$$\frac{1}{2}\rho v^2+\rho gh+p = \text{constant}$$ $${c(H_3O^+)} = K_…

Read More

使用acme.sh签发Let's Encrypt通配符证书

12小时前,Let's Encrypt发文称,在经过一系列调整后,正式的ACMEv2后端以及通配符证书已被支持。 acme.sh已支持测试版ACMEv2协议及通配符证书,如今只需去掉命令行中的--test便可签发有效证书。 通配符证书对应域名的所有权无法在通过HTTP进行验证,故ACMEv2采用DNS来验证申请者对域名的所有权,为此需要对该顶级域名添加一条TXT DNS记录。为提高自动化程度,acme.sh和CertBot等支持ACMEv2的工具利用DNS服务商的API来添加与(…

Read More

编译支持HTTP/2的cURL

Ubuntu 16.04的软件源所提供的curl不支持http/2。为支持http/2,需自行编译curl。 为确保支持ALPN(如不支持则无法与一个现代的http服务器协商至http/2),使用OpenSSL作为SSL库。 OpenSSL要使用1.0.2或1.1.…

Read More

非交互Shell有时更好用

几天前看了一篇介绍ZSH的文章,打算尝试用zsh替换bash。 不料更换shell时出现失误,将chsh -s /bin/zsh误写作chsh -s /zsh,导致root没有可用的shell。 接下来我试图再次使用chsh将shell该回去,系统却已无反应。断开SSH重新连接,由于没有shell,都无法登录。…

Read More

一条命令查找并封禁多数暴力破解SSH的IP

之前的文章曾提到,常见的SSH暴力破解工具似乎只支持RSA和DSA两种密钥交换,而不支持较新的ECDSA(使用NIST P-256的ECDSA)和Ed25519(使用X25519的ECDSA)。 由此一来,当这些机器人来暴力破解的时候,/var/log/auth.log中会出现大量类似如下内容的日志 Jan 28…

Read More

[openssl enc]的前向兼容性问题

使用openssl enc命令进行解密时,如同时满足以下两个条件,会导致解密失败或得到内容与原内容不一致: 加密和解密时使用的OpenSSL版本不同,且一个是1.0.2及以下版本,另一个是1.1.0及以上版本 加密时使用密码生成密钥,而不是指定HEX格式的密钥(及IV*1)…

Read More

PHP 7.2

PHP 7.2的正式版已发布。我测试了其与我所使用的多个PHP Web Applications的兼容性。 测试环境为: Ubuntu 16.04.3(LTS)/Linux Kernel 4.…

Read More

CHACHA20 Patch for OpenSSL 1.1.1-dev

(2018.6.1 Update)注:此文章所用方法已过时,仅适用于OpenSSL 1.1.1-dev,不适用于其后发布的任何Alpha与Beta版本。 OpenSSL 1.1.1的Alpha与Beta版本可通过配置文件命令PrioritizeChaCha来实现同样功能。…

Read More

惊闻StartCom之死

数日前浏览V2ex时,见有人转载这样一条新闻,大意是:StartCom宣布停止其数字证书业务。 回想当年,没有Let's Encrypt这个免费且全自动签发的CA之前,StartCom曾为万千个人站长提供1年免费的SSL证书,令访客可以更安全地连接到网站。 然而,臭名昭著的沃通,或者其背后的金主奇虎360公司,作为被StartCom签名的Intermediate CA,先是逆向收购了StartCom,…

Read More

使用Stunnel为MySQL Server建立SSL隧道

笔者接手的一个项目有如下需求: 两台主机A和B,A上运行一个MySQL服务器和一套基于PHP的、以MySQL为数据库的CMS;B上除MySQL服务器外,其他皆与A相同。 要求B能安全地(通过SSL)连接A上的MySQL服务器,而这个CMS本身不支持MySQL over SSL Stunnel可以提供一个安全的SSL隧道,理论上可以承载任何应用层协议——包括MySQL。…

Read More

使用acme.sh申请Let's Encrypt的EC证书

此文章来自我的博客,发表于2017年3月7日。据了解,其所介绍之内容如今[2017年11月8日]仍可使用 鉴于信息技术类文章迁移计划,将其移动至此。 acme.sh是一个国人编写的、基于ACME协议的第三方Let's Encrypt证书管理工具.使用它申请EC证书较为简单. #下载acme.sh…

Read More