joinbox/email-obfuscator

在任何地方隐藏电子邮件

2.3.2-rc.1 2024-09-03 11:02 UTC

README

Drupal 电子邮件混淆模块使用一个中间件从每个请求中获取渲染的内容。内容会使用正则表达式搜索电子邮件。电子邮件的混淆取决于文本的位置。

混淆方式

邮件to链接中的电子邮件

示例: <a href="mailto:test@email.com">

  • 排除 mailto: 的电子邮件字符串被反转
  • 添加了 onfocus 和 onmousedown 事件,这些事件在 mailto: 后重新反转电子邮件。这两个事件涵盖了以下情况:右键点击、左键点击和标签键聚焦。(onfocus 在大多数浏览器中都会这样做,但 Safari 需要 onmousedown。)

重新反转只进行一次,以避免反转回反转的电子邮件

所有其他电子邮件

示例: <a>test@email.com</a>

  • 在电子邮件中间添加一个 display:none 的 span,其中包含包含无效电子邮件字符分隔符的文本

排除项

  • 任何无效的电子邮件(根据 PHP 的 filter_var 函数)
  • 后台办公室中的所有内容(管理页面)
  • HTML 属性中的电子邮件(输入字段的占位符)
  • 白名单路由中的内容(见下文)

白名单路由

  • 在 settings.php 中定义白名单(排除)路由
    $settings['email_obfuscator'] = [
      'route_whitelist' => [
        'rest.api_layout_footer.GET',
        'editor.link_dialog'
      ]
    ];
  • 重要:如果您正在使用 CKEditor 4,则应将路由 editor.link_dialog 加入白名单,以避免在 CKEditor 链接对话框中混淆电子邮件。