写在前面:

前段时间在 FF0000 TeAm 的博客上看到一篇关于 Typecho 漏洞 的文章,这让我不得不提高了警惕,毕竟安全这些事可大可小,遂成此文章,记录一些改进 Typecho 安全性(主要是社工方面)的设置方法,都是些很简单但是也很容易被忽略的细节,也算是我的一个笔记,以后一旦我有新发现我会更新到这里,也欢迎大家补充~

注:下面出现的 模板 均为官方默认模板


自定义后台路径

这是挺久之前就已经发在我的博客上了的(传送门),现在再把它复制黏贴过来吧:

找了一下资料,发现 Typecho 自定义后台路径的操作挺简单的,只有两步:

  1. 改掉 admin 这个文件夹的名字
  2. 打开根目录下的 config.inc.php 文件,找到
/** 后台路径(相对路径) */
define('__TYPECHO_ADMIN_DIR__', '/admin/');

/admin/ 改成你之前重命名的名字就行了。

另外,如果你用的是官方默认主题的话,你还需要再做下面的一点点小操作:
首先,把后台目录里 /css/ 目录中的 normalize.cssgrid.css 以及 /js/ 目录中的 html5shiv.jsrespond.js 拷贝(我没有研究这些文件在其他地方要不要调用,所以就用复制的方式而不是移动)到官方模板目录中去,具体放该模板目录中的哪个文件夹按照自己的喜好决定。
然后打开 header.php ,定位到以下代码:

    <link rel="stylesheet" href="<?php $this->options->adminUrl('css/normalize.css'); ?>">
    <link rel="stylesheet" href="<?php $this->options->adminUrl('css/grid.css'); ?>">
    <link rel="stylesheet" href="<?php $this->options->themeUrl('style.css'); ?>">

以及:

    <script src="<?php $this->options->adminUrl('js/html5shiv.js'); ?>"></script>
    <script src="<?php $this->options->adminUrl('js/respond.js'); ?>"></script>

adminUrl 改成 themeUrl ,然后把那四个文件的路径也改一下,完成。

参考资料:Typecho官方文档 - 如何自定义后台路径


关闭侧边栏登录入口

这个有两种方式,一种是 Typecho 里直接设置不显示,另一种是改模板文件。
先说说第一种:
登录后台首页,选择 控制台 -> 外观 -> 设置外观 ,把 显示其他杂项 的钩去掉,保存设置。
第二种,打开模板中的 sidebar.php ,定位到

<?php if (!empty($this->options->sidebarBlock) && in_array('ShowOther', $this->options->sidebarBlock)): ?>

下面这段代码时可以删掉的(当然你也可以改掉超链接的指向,比如指向 必应 )

<?php if($this->user->hasLogin()): ?>
                <li class="last"><a href="<?php $this->options->adminUrl(); ?>"><?php _e('进入后台'); ?> (<?php $this->user->screenName(); ?>)</a></li>
                <li><a href="<?php $this->options->logoutUrl(); ?>"><?php _e('退出'); ?></a></li>
            <?php else: ?>
                <li class="last"><a href="<?php $this->options->adminUrl('login.php'); ?>"><?php _e('登录'); ?></a></li>
            <?php endif; ?>

关闭 meta 中的版本信息

meta 标签里默认会显示 Typecho 的版本信息和模板的名字的,这就需要关闭掉或者修改成其他信息。
打开模板中的 header.php ,找到

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

header() 里加入参数(去掉这两项):

<?php $this->header("generator=&template="); ?> 

摘抄官方文档:

参数

  • keywords:关键词
  • description:描述、摘要
  • rss1:feed rss1.0
  • rss2:feed rss2.0
  • atom:feed atom
  • generator:程序版本等
  • template:模板名称
  • pingback:文章引用
  • xmlrpc:离线写作
  • wlw:m$的离线写作工具
  • commentReply:评论回复

说明

等号(=)为空则不输出该项目,各个参数之间使用 “&” 连接。如果需要自定义rss地址,只填上 rss2=feed订阅地址 即可。

参考资料:Typecho官方文档 - 自定义头部信息输出

P.S. $this->header(); 这个函数原型在 /var/Widget/Archive.php

标签: 笔记

已有 10 条评论

  1. 博主你好,我用的是Typecho 我进入根目录找到config.inc.php文件 把/admin/ 修改成别的字母 输入后台url 直接跳404 然后我把自定义的内容改回admin在访问就能进入后台 我用的不是系统默认的主题 我用侧边栏登录入口链接地址显示的是自定义的字母 但还是跳404 看到请尽快回复我,感谢。

    1. /admin 这个文件夹的名称改了吗?也要改成和 config.inc.php 里一致

      1. 是目录文件夹名没改,现在好了 非常感谢。

  2. 已根据文章关闭meta版本信息 非常感谢

  3. 博主你好,我发现Markdown写的文章里,超链接中带有汉字的话,会出现超链接无法正常识别的bug,应该如何是好啊?

    1. 可能是 Markdown 解析器的 bug 吧,换解析器或者对链接中的汉字进行编码

添加新评论