V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rimworld
V2EX  ›  问与答

对于博客程序的这种行为你是否能接受?

  •  
  •   rimworld · 262 天前 · 1393 次点击
    这是一个创建于 262 天前的主题,其中的信息可能已经有所发展或是发生改变。

    程序是 VanBlog 。

    介绍网站: https://vanblog.mereith.com/

    行为:在进入博客的后台管理页面时候,要发送一个 get 请求给开发者的后端服务程序。
    发现原因:
    issue 里有人提到进入后台管理页面需要 30s 左右,我自己也发现进入后台管理页面很慢很慢,就去跟踪了下代码。
    相关代码:
    这里是自己部署的服务端处理来自/api/admin/meta 的请求的
    https://github.com/Mereithhh/vanblog/blob/master/packages/server/src/controller/admin/meta/meta.controller.ts
    这部分具体代码:

    
    @ApiTags('meta')
    @UseGuards(...AdminGuard)
    @ApiToken
    @Controller('/api/admin/meta')
    export class MetaController {
      constructor(private readonly metaProvider: MetaProvider) {}
      @Get()
      async getAllMeta(@Req() req: Request) {
        const meta = await this.metaProvider.getAll();
        const serverData = await getVersionFromServer();
        const data = {
          version: version,
          latestVersion: serverData?.version || version,
          updatedAt: serverData?.updatedAt || new Date(),
          user: req.user,
          baseUrl: meta.siteInfo.baseUrl,
          enableComment: meta.siteInfo.enableComment || 'true',
          allowDomains: process.env.VAN_BLOG_ALLOW_DOMAINS || '',
        };
        return {
          statusCode: 200,
          data,
        };
      }
    }
    

    其中有一条函数执行是 getVersionFromServer,这里就会发送请求了。 https://github.com/Mereithhh/vanblog/blob/master/packages/server/src/utils/getVersion.ts

    import axios from 'axios';
    export const getVersionFromServer = async () => {
      try {
        let { data } = await axios.get('https://api.mereith.com/vanblog/version');
        data = data?.data || {};
        if (!data?.version) {
          return null;
        }
        return {
          version: data.version,
          updatedAt: data?.updatedAt || data?.upadtedAt,
        };
      } catch (err) {
        return null;
      }
    };
    

    其实也能理解开发者,可能后期要上收费主题啥的,要做验证。但是我个人已经把这个博客程序给卸载,vps 重装系统了。

    12 条回复    2023-08-16 05:34:29 +08:00
    renfei
        1
    renfei  
       262 天前   ❤️ 1
    我觉得,这些代码,只是为了去他那获取新的版本号,然后提醒有新版本更新
    但是,完全可以异步请求,啥时候有回应了再弹提醒,不明白为啥要用阻塞的同步请求
    cnleon
        2
    cnleon  
       262 天前   ❤️ 3
    无法接受这种行为,而且这种动态的一般漏洞多和性能还不行。
    rimworld
        3
    rimworld  
    OP
       262 天前 via iPhone
    @renfei 目前是这样的,就怕哪天哪个版本升级,就开始塞奇怪的东西了
    rimworld
        4
    rimworld  
    OP
       262 天前 via iPhone
    @cnleon 握手🤝
    idragonet
        5
    idragonet  
       262 天前   ❤️ 1
    自建博客。
    airyland
        6
    airyland  
       262 天前   ❤️ 1
    过度侵入了
    kingfalse
        7
    kingfalse  
       262 天前 via Android   ❤️ 1
    WordPress 吧,这些乱七八糟的,就很恶心。
    whileFalse
        8
    whileFalse  
       261 天前 via Android
    @kingfalse WordPress 不会检查新版本吗
    cyp0633
        9
    cyp0633  
       261 天前
    要是就这么点遥测的话个人觉得没关系,但会小心之后的改动
    1423
        10
    1423  
       261 天前
    既然是开源的那就自己改了嘛, 开源代码都是 AS IS 提供. 有啥接不接受
    msg7086
        11
    msg7086  
       261 天前
    > 就怕哪天哪个版本升级,就开始塞奇怪的东西了

    任何一个软件都是这样的。
    kingfalse
        12
    kingfalse  
       261 天前 via Android
    @kingfalse 世界上几乎一半都是 wp ,我相信大家不会都瞎。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2433 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:32 · PVG 21:32 · LAX 06:32 · JFK 09:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.