minimalic / silverstripe-cryptoprotect
Silverstripe CMS 5的Proof of Work Captcha字段
Requires
- silverstripe/spamprotection: ^3 || ^4
README
CryptoProtect是Silverstripe的SpamProtection模块的Proof of Work Captcha表单扩展。
Proof of Work机制利用SHA256散列算法来利用客户端设备的计算能力,显著阻止Spam-Bots填充表单。
在iloveunix.com/contact-us上有工作演示。
要求
- Silverstripe CMS版本4或5
- Silverstripe SpamProtection模块版本3或更高
安装
使用Composer安装
composer require minimalic/silverstripe-cryptoprotect
配置
1. 设置默认保护器
在项目的配置(例如spamprotection.yml
)中将CryptoProtect设置为默认的captcha
SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension: default_spam_protector: minimalic\CryptoProtect\Forms\CryptographicChallengeProtector
2. 重建数据库
通过在shell中导航到您的网站根目录并运行以下命令来刷新您的数据库:
vendor/bin/sake dev/build "flush=all"
或使用您的base URL:
/dev/build?flush=all
3. 生成散列
在CMS中,导航到“admin/cryptographic-challenges”区域并生成新的散列。
4. 添加字段
将新的“Spam Protection Field”添加到您的表单中。
自定义
YAML文件
在项目的配置中微调散列机制(例如spamprotection.yml
)。当前可用的选项及其默认值
minimalic\CryptoProtect\Models\CryptographicChallenge: difficulty_cycles: 100000 hashes_count: 20 hide_input_by: 'bootstrap' show_calculation_status: true show_progress_bar: true hide_after_solving: true
注意:增加difficulty_cycles
可能会在较慢的设备上延长计算时间(客户端)。更高的hashes_count
需要更多时间来再生散列(服务器端)。
显示选项
hide_input_by
- 使用可用选项之一隐藏输入字段
bootstrap
默认,使用“visually-hidden”类style
使用“display: none”内联样式none
显示输入字段
注意
哈希输入字段始终在禁用JS的浏览器中显示,作为手动解决挑战的回退。
show_calculation_status
- 显示加载旋转器/完成的勾选标记和状态文本
show_progress_bar
- 显示进度条
hide_after_solving
- 在4秒后隐藏旋转器/状态和/或进度条
完成自定义
记得在调整配置时清除您的缓存(?flush=all
)并在CMS中重新生成散列。
有关配置和利用Spam Protection字段的更详细信息,请访问SpamProtection模块存储库。
许可证
查看许可证
版权所有(c)2024,minimalic.com - Sebastian Finke 保留所有权利。