yannkuesthardt/laravel-spamprotect

加密电子邮件地址和电话号码,以防止不想要的爬虫和垃圾邮件。

v1.2.1 2024-01-28 18:30 UTC

This package is auto-updated.

Last update: 2024-09-28 20:03:53 UTC


README

Latest Version on Packagist Total Downloads License GitHub Build Status

Laravel SpamProtect 是一个简单的包,用于加密电子邮件地址和电话号码,以防止它们被不想要的爬虫和垃圾邮件访问。

它加密链接的目标,并使用 JavaScript 在客户端进行解密。这样,电子邮件地址就不会出现在 HTML 源代码中,而且不会被阅读 href 的机器人爬取。

此外,电子邮件地址和电话号码中使用的某些常见字符被替换为 HTML 实体,这使得机器人更难爬取。

<a href="#" data-spamprotect-token="eyJjdCI6Ijky...">
    hello@example.com
</a>

安装

要求

  • PHP 7.4 或更高版本
  • Laravel 8.0 或更高版本
  • CryptoJS 4.0.0 或更高版本

您可以通过 composer 安装此包

composer require yannkuesthardt/laravel-spamprotect

运行安装命令以生成新的加密密钥并清除必要的缓存。

php artisan spamprotect:install

请确保在您的 JS 设置中导入 CryptoJs,以便它可以由我们的 JS 使用。例如,您可以在 bootstrap.js 文件中这样做。

import CryptoJS from 'crypto-js';
window.CryptoJS = CryptoJS;

在您的 HTML body 标签的某个位置添加以下两个 blade 指令。请确保首先要求您的 JS,以便 CryptoJS 可用。

@spamprotectKey
@spamprotectJs

提示:您可以覆盖 SpamProtect JS 文件的默认路径:@spamprotectJs('your/custom/path/to/spamprotect/app.js')

使用方法

电子邮件地址

要加密电子邮件地址,请使用以下 blade 组件

<x-encrypt-email email="hello@example.com"/>

这将生成以下 HTML 代码

<a href="#" data-spamprotect-token="aVN2anJHTHJL...">
    hello@example.com
</a>

电话号码

要加密电话号码,请使用以下 blade 组件

<x-encrypt-phone phone="+1234567890"/>

这将生成以下 HTML 代码

<a href="#" data-spamprotect-token="xaVBiZU9rbUR...">
    +1 234 567890
</a>

自定义文本

您还可以为链接使用自定义文本

<x-encrypt-email email="...">
    My Cutom Text
</x-encrypt-email>

这将生成以下 HTML 代码

<a href="#" data-spamprotect-token="...">
    My Custom Text
</a>

属性

您可以通过将它们传递给组件来向生成的代码添加 HTML 属性(例如 class、id 等)。

<x-encrypt-email class="my-class" id="my-id" ...

这将生成以下 HTML 代码

<a class="my-class" id="my-id" ...

定制

您可以使用以下方法生成新的加密密钥

php artisan spamprotect:key

您可以使用以下方法发布配置

php artisan vendor:publish --tag="laravel-spamprotect-config"

您可以使用以下方法发布资产(javascript)

php artisan vendor:publish --tag="laravel-spamprotect-public"

您可以使用以下方法发布视图

php artisan vendor:publish --tag="laravel-spamprotect-views"

测试

PHPUnit

./vendor/bin/phpunit

PHPStan

./vendor/bin/phpstan

变更日志

有关最近更改的更多信息,请参阅 变更日志

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件