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

时间:2015-12-31 02:12:11

标签: email schema.org spam-prevention json-ld

我想将JSON-LD用于搜索引擎优化目的,但不确定如何阻止自动电子邮件收集者从源中获取地址。

email schema中,您提供了一个电子邮件地址。我总是通过使用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>

我能想到的唯一方法是使用JS动态创建上面的内容,我希望收割者无法解释大部分内容,但那很可能打破搜索引擎支持。这有什么解决方案吗?

2 个答案:

答案 0 :(得分:4)

除非您能够检测到恶意僵尸程序(并将其作为没有电子邮件地址的版本),否则没有合理的解决方案。使用结构化数据的主要原因之一是让机器人轻松访问,因此这是设计使然。

您可以尝试让电子邮件地址更难:

  • Schema.org的email property期望 Text 为值,因此可以使用混淆(例如jane-doe at {this domain})。
    希望:机器人默认不理解你的混淆方法。

  • 如果不需要使用Schema.org的email属性:FOAF的mbox_sha1sum property需要SHA1哈希电子邮件地址。
    希望:机器人不会尝试(或者还没有)找到相应的电子邮件地址。

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

但是,当然,这也使得好机器人变得更难,并且在某些时候你可能想要考虑根本不提供电子邮件地址。

如果您只想向某些消费者提供电子邮件地址,您可以为这些消费者提供包含电子邮件地址的文档,以及所有其他没有的机器人。但搜索引擎机器人might not like this method。而且你不利于新消费者或你不认识的消费者。

我只是提供未经过模糊处理的电子邮件地址,并为每个人making the life of visitors (humans as well as bots) easier提供。垃圾邮件应该是你的问题,而不是他们的问题;这是一个可以处理的问题。

答案 1 :(得分:1)

JSON-LD可以为机器人提供数据,包括可以轻易欺骗其他机器人身份的电子邮件收集器。我建议将电子邮件地址从JSON-LD中删除,它不会伤害搜索引擎优化,这些电子邮件的所有者会爱你。否则你 - 将导致他们的电子邮箱成为垃圾邮件的持续目标