yapi mock漏洞處理


前言

針對yapi被爆出高級Mock可以獲取到系統操作權限相關處理

解決方案

關閉注冊

config.json 添加如下配置項

{
  "port": "*****",
  "closeRegister":true
}

關閉mock

config.json 添加如下配置項

{
  "port": "*****",
  "mock": false,
}

在exts/yapi-plugin-andvanced-mock/server.js文件中找到如下代碼:

if (caseData && caseData.case_enable) {...}

添加代碼:

if(!yapi.WEBCONFIG.mock) { return false; }

過濾敏感詞

新增配置項

{
  "port": "*****",
  "filter": "process|exec|require",
}

修改公共函數 yapi/common/postmanLib.js 第178行

function sandboxByNode(sandbox = {}, script) {
  let filter = yapi.WEBCONFIG.filter; 
  let reg = new RegExp("["+filter+"]", "g"); 
  if(reg.test(script)) { 
   throw new Error("執行失敗,腳本中含敏感操作....");
  }
  const vm = require('vm');
  script = new vm.Script(script);
  const context = new vm.createContext(sandbox);
  script.runInContext(context, {
    timeout: 10000
  });
  return sandbox;
}

設置訪問白名單

nginx 或 ip端口號

參考鏈接

https://github.com/YMFE/yapi/issues/2099


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM