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

查看 111|回复 7
作者:rimworld   
程序是 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 重装系统了。

Data, version, const, updatedat

renfei   
我觉得,这些代码,只是为了去他那获取新的版本号,然后提醒有新版本更新
但是,完全可以异步请求,啥时候有回应了再弹提醒,不明白为啥要用阻塞的同步请求
cnleon   
无法接受这种行为,而且这种动态的一般漏洞多和性能还不行。
rimworld
OP
  
@renfei 目前是这样的,就怕哪天哪个版本升级,就开始塞奇怪的东西了
rimworld
OP
  
@cnleon 握手🤝
idragonet   
自建博客。
airyland   
过度侵入了
kingfalse   
WordPress 吧,这些乱七八糟的,就很恶心。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部