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

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

  •  
  •   rimworld · 2023-08-15 20:08:46 +08:00 · 1507 次点击
    这是一个创建于 467 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    任何一个软件都是这样的。
    kingfalse
        12
    kingfalse  
       2023-08-16 05:34:29 +08:00 via Android
    @kingfalse 世界上几乎一半都是 wp ,我相信大家不会都瞎。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.