Typecho 防止评论区域 XSS 攻击的核心是升级到已修复漏洞的最新版本(如 1.2.1-rc 及以上),并对插件输入进行严格过滤。适用于所有使用 Typecho 建站且开启评论功能的场景,风险边界在于旧版本核心代码及未经验证的第三方插件。
先说结论:修复 Typecho 评论 XSS 漏洞需优先升级核心程序至安全版本,同时排查第三方插件的输入过滤机制。
- 先判断:确认当前 Typecho 版本是否低于 1.2.1-rc,检查是否使用了友链等高风险插件。
- 优先做:升级官方核心代码,手动修复未更新版本的 feedback.php 文件,删除安装目录。
- 再验证:提交含脚本payload的评论网址,检查页面源码是否转义特殊字符。
快速处理思路
由于 Typecho 基于 PHP 运行,无法通过单条命令完全修复,需按以下优先级处理:
- 版本核查:登录后台查看版本号,若低于 1.2.1-rc,立即从官方仓库更新。
- 代码修复:若无法升级,修改/var/widget/feedback.php,强制过滤 URL 参数中的引号和尖括号。
- 插件排查:禁用非必要的评论增强插件,特别是涉及友链提交的插件。
- 外围防护:配置 Web 应用防火墙(WAF)拦截恶意请求特征。
为什么会这样
评论 URL 字段存在存储型 XSS 漏洞,原因是用户输入未经过充分转义直接回显到 HTML 属性中。攻击者在评论网址填空处注入恶意脚本,当其他用户访问该页面时,脚本在浏览器端执行。公开资料中没有看到可靠的量化数据说明受影响站点比例,但社区已确认该漏洞可导致 Cookie 泄露和后台权限劫持。
分步处理
第一步:升级核心程序
访问官方发布页下载最新源码覆盖现有文件,保留 config.inc.php 配置文件。官方仓库最新代码已修复该漏洞,并预发布了 Typecho 1.2.1-rc 版本。
第二步:手动修复代码(若无法升级)
打开/var/widget/feedback.php,找到 URL 处理部分,增加过滤逻辑。强制去除双引号、单引号、尖括号,防止 HTML 属性逃逸。再次验证是否为合法 URL,非法 URL 将被置空。
第三步:加固后台安全
成功安装后删除 install.php 文件和 install/文件夹。修改后台地址,把 admin 修改为黑客猜不到的名字,防止黑客穷举密码。
第四步:插件安全审查
检查友链等插件的提交表单是否有鉴权机制。很多开发者没有安全概念,不要随便瞎用别人的插件,确保表单提交时有 Token 验证。
怎么验证是否生效
测试 Payload:在评论网址输入框尝试提交含