You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Docs插件onOpen事件遭虚假用户频繁触发,如何拦截?

解决Google Docs Add-on虚假用户注册问题

一、先检查脚本是否公开

  • 打开Google Apps Script编辑器,点击左侧齿轮图标进入「项目设置」,查看「共享权限」,确认是否设置为“任何人可查看/编辑”
  • 若Add-on已发布到Marketplace,进入发布页面查看受众范围,是否为公开可见

二、拦截虚假用户的实用方案

1. 延迟注册到用户实际操作时

虚假账号仅触发onOpen就停止,因此不要在onOpen中直接执行注册逻辑,改为用户主动触发插件功能(如打开侧边栏、点击菜单)时再注册:

function onOpen() {
  // 仅添加插件菜单,不执行注册
  DocumentApp.getUi().createMenu('我的插件')
    .addItem('启动插件', 'initPlugin')
    .addToUi();
}

function initPlugin() {
  // 此处执行用户注册逻辑
  registerValidUser();
  // 打开插件侧边栏或执行其他功能
  DocumentApp.getUi().showSidebar(HtmlService.createHtmlOutput('欢迎使用'));
}

2. 基于邮箱特征的正则过滤

针对虚假账号“固定前缀+变体后缀/数字”的特征,用正则表达式识别并拦截:

function isSuspiciousEmail(email) {
  // 可根据实际观察到的虚假账号模式调整正则规则
  const suspiciousRegexes = [
    /^[a-z]{6,}[0-9]{2,}@gmail\.com$/, // 长字母前缀+多位数字后缀
    /^[a-z]+[a-z0-9]{4,}@gmail\.com$/   // 基础前缀+长混合变体后缀
  ];
  return suspiciousRegexes.some(regex => regex.test(email.toLowerCase()));
}

function registerValidUser() {
  const userEmail = Session.getActiveUser().getEmail();
  if (isSuspiciousEmail(userEmail)) {
    console.log(`拦截可疑账号: ${userEmail}`);
    return;
  }
  // 正常注册逻辑
  // ...
}

3. 添加频率限制

记录账号的触发频率,短时间内多次触发的直接拦截,可使用Google Sheets或数据库存储触发记录:

function checkRateLimit(email) {
  const rateLimitSheet = SpreadsheetApp.openById('你的记录表格ID').getSheetByName('RateLimitLogs');
  const logs = rateLimitSheet.getDataRange().getValues();
  const now = Date.now();
  const interval = 5 * 60 * 1000; // 5分钟内只允许一次触发

  for (const row of logs) {
    if (row[0] === email && now - row[1].getTime() < interval) {
      return true; // 超过频率限制,拦截
    }
  }
  // 更新触发记录
  rateLimitSheet.appendRow([email, new Date()]);
  return false;
}

4. 增加用户交互验证

在插件首次启动时添加简单的人机交互(如点击确认按钮),自动脚本无法完成该操作:

  • 在侧边栏HTML中添加确认按钮,点击后才触发注册:
<!-- 侧边栏HTML -->
<button onclick="confirmUsage()">确认使用插件</button>
<script>
  function confirmUsage() {
    google.script.run.registerValidUser();
    document.body.innerHTML = '<p>已完成注册</p>';
  }
</script>

三、提供的脚本执行记录

—   onOpen  Simple Trigger  Nov 12, 2023, 4:38:06 PM    0.502 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:36:47 PM    0.506 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:36:36 PM    0.823 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:34:20 PM    0.651 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:33:27 PM    0.59 s  
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:30:48 PM    0.723 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:28:57 PM    0.5 s   
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:28:51 PM    0.469 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:28:40 PM    0.558 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:28:35 PM    0.505 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:21:08 PM    0.693 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:16:18 PM    0.481 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:14:31 PM    1.332 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:13:58 PM    0.521 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:12:18 PM    0.511 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:09:19 PM    0.469 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:03:59 PM    0.477 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:03:06 PM    0.74 s  
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 4:03:03 PM    0.48 s  
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 3:48:43 PM    0.46 s  
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 3:48:40 PM    0.661 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 3:43:44 PM    0.453 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 3:42:57 PM    0.731 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 3:42:24 PM    0.708 s 
Completed
—   onOpen  Simple Trigger  Nov 12, 2023, 3:42:12 PM    0.415 s 
Completed

内容的提问来源于stack exchange,提问作者Random Data Monster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:10:22