【Typecho】RSS 订阅地址暴露回复可见内容的问题及解决方案

在Typecho这款简洁而强大的博客系统中,许多主题都巧妙地融入了 回复可见 功能,旨在激励读者通过评论回复来解锁隐藏的文章内容,从而增强互动性。然而,这一功能在Typecho的 RSS 订阅中却意外地暴露了一个小问题:那些标记为 回复可见 的内容,在 RSS 订阅源中竟然一览无余。
Test
由于现在很少有博主使用 RSS 订阅,这个问题往往被忽视。在网上搜索相关信息,几乎找不到提及 Typecho RSS 订阅地址暴露问题的文章。

rss地址:https://域名/feed

Test
如果你已经从服务器上禁用了 RSS 订阅,那么该地址将不会生效。经过测试,我发现一些 Typecho 站点确实存在此暴露问题,但仅限于启用了 回复可见 功能的文章。那些设置了 密码保护隐藏私密 的文章不会出现在 RSS 订阅中。

提出这个问题是为了提醒各位站长检查自己的站点是否也有类似的问题。 需要注意的是,我们并 不鼓励 通过这种方式查看隐藏内容,毕竟,与网站互动并留下评论是一种支持站长的简单方式,尤其是对于那些纯公益性质的 个人博客而言,这种互动能够让站长知道有人在支持他们 ,从而更有动力继续运营下去。
Test
要解决这个问题,你可以通过修改服务器上的 feed.php 文件 如上图 (位于 /var/typecho/ 目录下)。另外,在编辑文章时,可以在 权限控制 中取消勾选 允许在聚合中出现 的选项,但这会导致整篇文章都不会出现在 RSS 订阅中 。或者禁用rss订阅也是可以的,禁用方法浏览器就有,这里就不放了

修改文件解决方案是对 feed.php 文件进行修改,在输出内容之前进行预处理过滤掉回复可见的内容。如果选择这种方法,你需要更新以下三个地方的代码:

  • https://域名/feed
  • https://域名/feed/rss
  • https://域名/feed/atom

feed输出文章摘要内容代码在feed.php文件中 262 行,文章内容代码在feed.php文件中 269
feed/rss输出文章内容代码在feed.php文件中 205
feed/atom输出文章摘要内容代码在feed.php文件中 333 行,文章内容代码在feed.php文件中 341

每个页面都是由 feed.php 文件中的不同代码段生成的。对于仍然希望保留 RSS 功能的站点来说,更新这些代码段就足够了。

此处提供一个修改版的feed.php文件,会预处理替换内容中的回复可见内容。仅使用Cuteen主题可用。

Feed.php文件下载

此处内容需要评论回复后方可阅读

评论区
头像
    头像
    小菜集
      

    6666 想知道咋截断,我在文章里 添加了 还是全部显示了

      头像
      点小新
        
      @小菜集

      是需要修改feed.php文件或取消勾选'允许在聚合中出现'才可以