是否可以保护 JSON-LD 免受电子邮件收集器的攻击?

cry*_*c ツ 7 email spam-prevention schema.org json-ld

我想将 JSON-LD 用于 SEO 目的,但不确定如何防止自动电子邮件收集器从源中获取地址。

电子邮件架构中,您提供一个电子邮件地址。我总是通过使用 JS 或其他方法来以某种方式混淆电子邮件地址。到目前为止,这有助于阻止垃圾邮件。

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Person",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Seattle",
    "addressRegion": "WA",
    "postalCode": "98052",
    "streetAddress": "20341 Whitworth Institute 405 N. Whitworth"
  },
  "colleague": [
    "http://www.xyz.edu/students/alicejones.html",
    "http://www.xyz.edu/students/bobsmith.html"
  ],
  "email": "mailto:jane-doe@xyz.edu",
  "image": "janedoe.jpg",
  "jobTitle": "Professor",
  "name": "Jane Doe",
  "telephone": "(425) 123-4567",
  "url": "http://www.janedoe.com"
}
</script>
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是使用 JS 动态创建上述内容,我希望收割机在大多数情况下无法解释,但这很可能会破坏搜索引擎的支持。有什么解决办法吗?

uno*_*nor 7

除非您可以检测到恶意机器人(并为其提供一个没有电子邮件地址的版本),否则没有明智的解决方案。使用结构化数据的主要原因之一是让机器人可以轻松访问,因此这是设计使然。

您可以尝试使获取电子邮件地址更加困难:

  • Schema.org 的email属性需要Text作为值,因此可以使用混淆(例如,jane-doe at {this domain})。
    希望:默认情况下,机器人不了解您的混淆方法。

  • 如果email不需要使用 Schema.org 的属性:FOAF 的mbox_sha1sum属性需要一个 SHA1 散列的电子邮件地址。
    希望:机器人不要尝试(或尚未)找到相应的电子邮件地址。

  • 您可以使用 JavaScript 添加email属性(例如,Google 支持)。
    希望:机器人不执行 JavaScript。

但这当然也让优秀的机器人更难,而且在某个时候,您可能想要考虑根本不提供电子邮件地址。

如果您只想向某些消费者提供电子邮件地址,您可以为这些消费者提供包含电子邮件地址的文档,而所有其他机器人则不提供。但是搜索引擎机器人可能不喜欢这种方法。并且您使新消费者或您不认识的消费者处于不利地位。

我只想为每个人提供未混淆的电子邮件地址,使访问者(人类和机器人)的生活更轻松。垃圾邮件应该是你的问题,而不是他们的问题;这是一个可以处理的问题。