yannkuesthardt / laravel-spamprotect
加密电子邮件地址和电话号码,以防止不想要的爬虫和垃圾邮件。
Requires
- php: ^7.4|^8.0
- ext-json: *
- ext-openssl: *
Requires (Dev)
- laravel/framework: ^8.0|^9.0|^10.0
- mockery/mockery: ^1.3.2
- orchestra/testbench: >=3.8
- phpstan/phpstan: ^0.12.99|^1.0
- phpunit/phpunit: ^7.0|^8.5.30|^9.0
README
Laravel SpamProtect 是一个简单的包,用于加密电子邮件地址和电话号码,以防止它们被不想要的爬虫和垃圾邮件访问。
它加密链接的目标,并使用 JavaScript 在客户端进行解密。这样,电子邮件地址就不会出现在 HTML 源代码中,而且不会被阅读 href 的机器人爬取。
此外,电子邮件地址和电话号码中使用的某些常见字符被替换为 HTML 实体,这使得机器人更难爬取。
<a href="#" data-spamprotect-token="eyJjdCI6Ijky..."> hello@example.com </a>
安装
要求
您可以通过 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)。有关更多信息,请参阅 许可文件