derhansen/form_crshield

为 TYPO3 ext:form 提供挑战/响应反垃圾邮件保护

安装次数: 70,595

依赖项: 1

建议者: 1

安全: 0

星星: 14

关注者: 4

分支: 7

开放性问题: 0

类型:typo3-cms-extension

2.0.0 2024-07-21 12:57 UTC

README

Latest Stable Version Acceptance Tests Monthly Downloads Project Status: Active – The project has reached a stable, usable state and is being actively developed.

表单挑战/响应垃圾邮件保护

这是什么?

表单挑战/响应垃圾邮件保护是一个 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',
        ]
    ]
];

版本

感谢赞助