derhansen / form_crshield
为 TYPO3 ext:form 提供挑战/响应反垃圾邮件保护
Requires
- typo3/cms-core: ^13.2
- typo3/cms-extbase: ^13.2
- typo3/cms-form: ^13.2
- typo3/cms-frontend: ^13.2
Replaces
- typo3-ter/form-crshield: 2.0.0
README
表单挑战/响应垃圾邮件保护
这是什么?
表单挑战/响应垃圾邮件保护是一个 TYPO3 扩展,用于防止在 TYPO3 表单扩展中自动提交表单。
它是如何工作的?
表单挑战/响应垃圾邮件保护为每个由 TYPO3 表单扩展生成的表单添加一个隐藏的输入字段。输入字段包含一个带有挑战的数据属性。包含的 JavaScript 将使用挑战来计算预期的响应,该响应将在每次表单提交时进行检查。如果未提交预期的响应,则将隐藏输入字段的验证视为失败,并且不会发送电子邮件。
为了使垃圾邮件机器人更难在启用了 JavaScript 的情况下自动提交表单,可以在扩展设置中定义 JavaScript 响应计算的延迟时间(默认值:3秒)。
保护可以被绕过吗?
是的,如果扩展使用的算法被垃圾邮件机器人实现,挑战/响应垃圾邮件保护可以被绕过。然而,这不太可能,因为垃圾邮件机器人必须使用 JavaScript(我相信大多数垃圾邮件机器人都不使用)或从解析的 HTML 中提取挑战,并正确计算和提交响应。
要求
该扩展使用 JavaScript 来计算预期的响应,因此如果客户端禁用了 JavaScript,则无法提交表单。
需要现代网络浏览器来运行 JavaScript。不支持 Internet Explorer < 11。
安装
只需使用 composer 或 TYPO3 扩展管理器在您的 TYPO3 网站上安装该扩展。不需要进一步配置。
扩展设置
该扩展有以下扩展设置,可以在需要时进行调整。但是,对于大多数网站,默认值应该很好。
crJavaScriptDelay
定义 JavaScript 响应计算的秒数延迟。默认值为 3
秒。
minimumPageExpirationTime
如果计算的页面缓存生存期非常低(例如,60 秒),则在达到 CR 响应的过期时间之前可能无法填写表单。此设置定义了计算出的页面缓存生存期必须具有的最小秒数。默认值为 900
秒。
additionalPageExpirationTime
定义在 minimumPageExpirationTime
中定义的值以下时,添加到计算的页面缓存生存期的秒数。
日志记录
为了记录失败的请求,可以使用如下所示的专用日志文件
$GLOBALS['TYPO3_CONF_VARS']['LOG']['Derhansen']['FormCrshield']['Hooks']['Form']['writerConfiguration'] = [
\TYPO3\CMS\Core\Log\LogLevel::DEBUG => [
\TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
'logFile' => \TYPO3\CMS\Core\Core\Environment::getVarPath() . '/log/form-crshield.log',
]
]
];
版本
感谢赞助
- 感谢 3m5. Media GmbH 对我在此扩展上开源工作的支持