垃圾邮件、灌水和集体攻击 — 保护开放式投稿表单
匿名表格对所有人开放,包括机器人、广告商和一位非常执着的人。滥用行为如何发生,哪些防御措施在不破坏匿名性的情况下有效,以及在洪水式攻击期间该怎么做。
Also in: Bahasa Melayu · 简体中文 · 繁體中文
简短回答。 您无法要求匿名提交者登录,因此目标是让滥用行为付出高昂代价,而不是不可能。每个地址和每个浏览器会话的速率限制、隐藏的蜜罐字段、最短填写时间、工作量证明以及保留所有包含链接的提交,可以阻止大部分滥用行为——而且这些都不需要知道提交者是谁。
匿名提交表格存在一个不寻常的安全问题。任何在线服务滥用行为的标准解决方案是要求人们表明身份——登录、验证电子邮件地址、绑定电话号码。匿名页面无法做到这些,否则就会失去其匿名性。它必须对那些它一无所知的人保持开放,同时还要保持其队列的可读性。
这是可以实现的。它需要一套不同的工具,并且需要接受这样一个事实:目标是让滥用行为的成本高昂,而不是不可能。
谁会滥用表格,以及为什么
防御措施取决于攻击者,因此区分它们会有所帮助。
自动化垃圾邮件。 爬取网页寻找任何带有文本框的表格,并用链接填充它——指向赌博网站、假冒商品、贷款优惠。它们并非特别针对您。它们会突然出现,易于识别,并且最容易阻止。
人工广告商。 真实的人粘贴他们的商店、补习服务或活动的促销信息。数量少但持续存在,如果被拒绝,他们会重新措辞。
单个洪水式攻击者。 一个人提交几十甚至几百次——有时是相同的信息,有时是其变体。他们可能试图通过纯粹的重复来强制发布帖子,以掩盖别人的提交,或者只是为了耗尽管理员的精力。
集体行动。 一个团体在其他地方组织——群聊、竞争页面——就一个主题进行大规模提交。这在学生选举、社团之间的纠纷以及关于特定人物的争议中很常见。每次提交都来自不同的人和不同的设备,因此看起来像是真实的情绪。这正是其意图。
恶意链接。 提交带有链接的帖子,该链接指向网络钓鱼页面或恶意软件,希望管理员会点击它,或者更好的是,发布它。
不需要身份验证的防御措施
速率限制
限制任何来源在一段时间内可以提交的次数。这是最有效的措施,对诚实用户来说是不可见的,他们很少在一天内提交超过一两次。
困难在于“来源”这个词。显而易见的选择是网络地址,但地址是共享的。校园 Wi-Fi 网络上的每个人可能都来自同一个地址,移动网络通常将数千名客户置于一个地址之后。一个严格到足以阻止洪水式攻击者的限制也可能阻止整个宿舍。
有一些实际的折衷方案:
- 慷慨地设置每个地址的限制——每小时几十次,而不是两次;
- 为每个浏览器会话添加更严格的限制,以阻止随意重复;
- 当达到限制时,减慢发送者的速度而不是完全阻止——等待一分钟可以阻止洪水式攻击者,而不会锁定邻居。
不跟踪人的挑战
CAPTCHA 证明有人在场,并且它对机器人有效。它的成本是摩擦、对使用辅助技术的人造成的问题,以及——对于某些提供商——将您的访问者数据传递给第三方。最后一点与匿名承诺格格不入。
还有一些不需要第三方的替代方案:
- 蜜罐字段。 一个对人隐藏但对机器人可见的表单字段,机器人倾向于填写所有内容。任何填写了该字段的提交都会被丢弃。它不花钱,并且可以阻止相当一部分自动化垃圾邮件。
- 最短时间。 没有人能在两秒内完成表格。比这更快到达的提交会被丢弃。
- Proof of work. 提交者的浏览器必须在表单接受提交之前解决一个小的计算难题。一个人不会注意到它花费的半秒钟。试图发送一万次提交的人会发现它花费了真实的计算时间。不涉及个人数据。
内容规则
- 保留或删除链接。 很少有真实的忏悔包含 URL。将所有包含链接的提交发送到单独的审查堆——或完全拒绝链接——消除了大部分垃圾邮件的动机。
- 捕获重复项。 重复提交的相同或近似相同的文本可以折叠成一个带有计数项。
- 限制两端的长度。 最小值可以阻止空提交和单字提交;最大值可以阻止某人粘贴小说。
开放时间
没有任何规定要求表格必须始终开放。有些页面会在夜间关闭提交,或者在队列达到一定大小时关闭,并明确说明。凌晨三点到达的洪水式攻击,在没有人看管的情况下,比遇到“提交将于早上 8 点重新开放”通知的洪水式攻击更具破坏性。
不该做的事情
不要“暂时”要求登录。 一旦您这样做,页面就不再匿名,而真正的提交者——那些更谨慎的人——会首先离开。
不要发布洪水式攻击。 发布二十个几乎相同的提交以“展示我们正在处理什么”恰好给了洪水式攻击者他们想要的东西。
不要禁止整个网络。 阻止校园地址范围或移动运营商,会因为一个人的行为而惩罚数千人。
不要点击提交中的链接 从您用于管理页面的设备和帐户。如果您必须检查链接指向何处,请使用链接预览或扫描服务,而不是您的浏览器。
不要详细公布您的防御措施。 “我们限制提交”没问题。“我们允许每个地址每小时精确 15 次”是一本操作手册。
识别集体行动
集体行动比洪水式攻击更难发现,因为每个提交都单独看起来合理。需要注意的迹象是:
- 关于单一主题的提交量突然增加,尤其是昨天还很安静的主题;
- 许多提交中出现相似的措辞、相同的不寻常词语或相同的论点;
- 在紧密的集群中突然开始到达;
- 提交内容读起来像是为 观众 而不是 页面 而写——精炼、有争议、口号式。
当您看到这种情况时,提交的数量并不能说明有多少人真正持有这种观点。十个人可以发送两百条消息。
适当的回应是发布 一两个代表性帖子,如果该主题完全符合您的规则,并公开说明收到了许多类似的提交。不要让数量获得比主题本身应有的更多空间。在选举和实时争议期间,考虑制定一项常设规则,即页面不发布任何关于候选人或争议方的内容——并在竞选开始前宣布,这样就不会被解读为偏袒。
在洪水式攻击期间
- 暂停表格 如果您的工具允许,并附上简短通知。关闭十分钟可以打破大多数洪水式攻击的势头。
- 不要阅读每一个。 按时间排序,找出爆发的开始和结束,并将其作为一个整体处理。
- 寻找它隐藏了什么。 洪水式攻击有时被用来掩盖某个特定的提交,或者耗尽管理员的精力,以便某些东西溜过去。仔细检查在它之前和期间到达的内容。
- 暂时收紧限制,然后一旦它过去就再次放松。
- 记录下来 在您的决策日志中:何时、多少、关于什么。第二次尝试通常遵循第一次的模式。
当滥用行为针对个人时
关于某个特定个人的洪水式提交不是垃圾邮件问题。这是骚扰,您的页面是其预期的工具。拒绝所有这些,甚至不要发布经过净化的摘要,并考虑是否应该告知该人他们正在成为目标。旨在引起某人痛苦的重复通信可能构成刑事犯罪——请参阅 Doxxing and harassment: the 2025 Penal Code offences.
一个现实的目标
您不会达到零垃圾邮件,而一个严格到足以保证零垃圾邮件的表格将无法使用。目标是达到这样一种状态:自动化垃圾邮件永远不会到达人类,一个坚定的洪水式攻击者被减缓到涓涓细流,并且集体行动被识别出其本质。少数精心选择的措施——速率限制、蜜罐、保留链接和暂停按钮——将帮助您实现这一目标,并且它们都不需要询问提交者他们是谁。
常见问题
如何在不要求登录的情况下阻止表单上的垃圾邮件?
限制一个来源在一段时间内可以提交的次数,添加一个只有机器人会填写的隐藏蜜罐字段,丢弃任何在两秒内完成的提交,要求浏览器提供一个小型的工作量证明谜题,保留或拒绝包含链接的提交,并折叠重复项。这些都无法识别提交者。
什么是蜜罐字段?
一个对人隐藏但对机器人可见的表单字段,机器人倾向于填写所有内容。任何填写了该字段的提交都会被丢弃。它不花钱,并且可以阻止相当一部分自动化垃圾邮件。
在匿名表单上使用CAPTCHA是个好主意吗?
它对机器人有效,但会增加摩擦,给使用辅助技术的人带来问题,而且一些提供商会将您的访客数据传递给第三方,这与匿名承诺不符。蜜罐字段、最短时间和工作量证明不需要第三方。
如何区分水军和真实意见?
寻找单一主题提交量突然增加、许多提交中使用相同的措辞或论点、紧密聚集的到达时间,以及看起来是为特定受众撰写的文本。十个人可以发送两百条消息,因此最多发布一两个代表性帖子,并说明收到了许多类似的提交。
在提交泛滥期间,管理员应该怎么做?
暂停表单并发布简短通知,将爆发式提交作为一个整体处理,而不是阅读每个项目,检查泛滥之前和期间收到的内容,以防泛滥隐藏了什么,暂时收紧限制,并将其记录在决策日志中。
页面是否应该为了阻止一个泛滥者而阻止整个网络?
不。网络地址是共享的:校园Wi-Fi网络上的每个人可能都来自一个地址,移动网络将数千名客户置于一个地址之后。阻止一个范围会因为一个人的行为而惩罚数千人。相反,应该减慢发送者的速度。