Typecho 0

    如何提高 Typecho 1.x 的性能且增强安全性?

    从 Wordpress 换回了 Typecho,最终还是简洁易操作的 Typecho 俘获了我的心。
    完全没有说 WordPress 相比 Typecho 起来,不好或是贬低。
    只是 WordPress 始终用不习惯。

    以前都没有注重过 Typecho 的安全性和性能,
    只不过是安装了之后,上 Cloudflare 添加一些 WAF 规则就完事了,
    安全性和性能什么的,管他呢,反正人和程序有一个能跑就行。

    最近想折腾一下这些方面的东西,
    所以搜了一些教程,在这里汇总一下,方便以后跑路重开时候用。

    个性化管理地址

    参考地址如何自定义后台路径 - Typecho Wiki

    其实也就是改掉后台管理地址URI,从admin改为自定义的。

    如果模板的前端有显示后台登录入口,需要先在控制台 -> 外观 -> 设置外观中关闭,不然修改的意义就不存在了。

    打开编辑 Typecho 程序根目录下的config.inc.php文件,并寻找这行

    // admin directory (relative path)
    define('__TYPECHO_ADMIN_DIR__', '/admin/');

    其中的'/admin/'就是我们可以进行更改的地方,例如改成这样

    define('__TYPECHO_ADMIN_DIR__', '/wp-admin/');

    总之改成你想要的名字

    还没结束,我们还得将 Typecho 程序根目录下的admin/文件夹一同重命名
    如果使用 ssh 命令修改

    sudo mv admin/ wp-admin/

    如果使用了 Web 控制面板,则可以直接在控制面板中更改

    这样我们访问的时候通过https://Your-Website.com/wp-admin就可以进入后台管理页面了。
    当然建议改成一般人想不到的,无规律的,这样用扫描程序扫的时候才不容易扫到。

    这样做的意义是对攻击者对后台管理进行字典爆破攻击以及 Typecho 程序的 0Day 攻击起到一定的防护作用。
    建议最好将 Typecho 程序升级至最新版本以免遭受漏洞攻击。

    个性化Html Meta 信息

    参考地址自定义头部信息输出 - Typecho Wiki

    默认情况下 Typecho 的设定是当发生请求时,返回Html包含 Typecho 标识的 Meta 信息

    <meta name="generator" content="Typecho 0.8/10.8.15" />
    <meta name="template" content="default" />

    以下方法可以不让访问者或是攻击者直接得知我们使用的是 Typecho 程序。

    打开编辑当前使用模板根目录下的header.php文件,找到这个部分

    <?php $this->header(); ?>

    header()函数中加上我们想修改的参数,就如

    <?php $this->header('generator=&template='); ?> //generator与template的meta都不输出
    <?php $this->header('generator=wordpress&template=default'); ?> //generator输出为wordrpress,template输出为default

    这样也能一定程度迷惑攻击者

    修改网站的nginx配置文件

    按需配置即可,我这里是把用得到的静态文件都上传到了对象存储,所以不用访问usr/文件夹。
    并且我开启了伪静态

    location ~* ^/(usr|var|install)/.*\.(php)$ {
        deny all;
    }

    这样设置usr/var/install文件夹就无法访问了,所有相关请求都会返回403错误。
    或者这样

    location ~* ^/(usr/plugins|var|install)/.*\.(php)$ { #允许访问usr目录下的themes/uploads文件夹,禁止访问plugins文件夹
        deny all;
    }
    

    DDos攻击防御

    最简单的就是上Cloudflare,有效而且方便。
    或者使用腾讯云CDN,有2G免费额度,个人网站差不多了吧。

    这个问题用钱才能完全解决。