TYPO3 Plugin:
tw_antibot
Über
Antibot (tw_antibot
) ist ein schneller Beweis für das Konzept, wie man Captcha-lose Sicherheit für Formulare in TYPO3-Projekten bietet. Es kann mit Fluid Vorlagen und / oder Formularbearbeitungsprogrammen verwendet werden. Entschuldigung, dass die Erweiterung im Moment weder sehr gut getestet noch dokumentiert ist. Feedback und Vorschläge sind sehr willkommen!
Die Erweiterung wurde stark von Karl Groves' Artikel "CAPTCHA-less Security" von 2012/2013 inspiriert und unterstützt seine BotSmasher API als externe Blacklist.
Installation
Im Moment ist die Extension noch nicht im TYPO3 Extension Directory (TER) freigegeben, aber Sie können sie von GitHub aus installieren:
cd typo3conf/ext
git clone git@github.com:tollwerk/TYPO3-ext-tw_antibot.git tw_antibot
Fügen Sie einfach das statische TypoScript von Antibot zu Ihrer Hauptvorlage hinzu und beginnen Sie mit der Konfiguration der gewünschten Optionen.
Antibot unterstützt ChromePhp für die Anmeldung an Ihrer Chrome-Konsole. Wenn Sie es verwenden möchten, ziehen Sie bitte ChromePhp über Composer ein:
cd typo3conf/ext/tw_antibot/Ressourcen/Privat
composer installieren
Konfiguration
Antibot bietet die folgenden Prüfungen. Alle Optionen können mit dem Konstanten-Editor konfiguriert werden.
Internes Verbot (Blacklist)
Kunden können auf die Blacklist gesetzt werden durch
- IP-Adressen
(plugin.tx_twantibot.settings.banning.ip
) - E-Mail-Adresse
(plugin.tx_twantibot.settings.forbanning.email
)
Sie können konfigurieren, ob der Client für immer oder nur für eine bestimmte Zeit auf die schwarze Liste gesetzt wird. Verwenden Sie die mitgelieferte Extbase-CommandController-Task im TYPO3-Scheduler, um abgelaufene Blacklist Datensätze regelmäßig zu entfernen
Externes Verbot
Antibot unterstützt BotSmasher bei der Identifizierung bekannter Spammer / betrügerischer Adressen. Für die Nutzung dieser Option benötigen Sie einen BotSmasher-API-Schlüssel (plugin.tx_twantibot.settings.botsmasher
)
Honeypot-Felder
Sie können ein oder mehrere Honeypot-Felder (plugin.tx_twantibot.settings.honeypot
) so konfigurieren, dass sie Ihrem Formular hinzugefügt werden. Honeypot-Felder sind für menschliche Benutzer in der Regel ausgeblendet (z.B. über CSS-Display: keine
) und / oder deutlich als nicht auszufüllen markiert. Wenn ein Wert für ein Honeypot-Feld eingegeben wird, dann ist es höchstwahrscheinlich eine Bot-Übertragung. Einige Tipps:
- Platzieren Sie die Honeypots hinter den Submit-Buttons.
- Benennen Sie sie wie typische Formularfelder, z.B.
E-Mail
und / oderName
(sie erhalten automatisch einantibot_*[]
Präfix). - Stellen Sie sicher, dass sie nicht
type="hidden"
sind, da Bots diese normalerweise ignorieren.
Session-Token
Der Sitzungs-Token kann berücksichtigt werden, um Entführungen und externe Eingaben Ihres Formulars zu verhindern. (plugin.tx_twantibot.settings.session
)
Einreichungszeit
Antibot kann die Zeit berücksichtigen, die Ihre Formulare benötigen, um Bot-Einreichungen zu identifizieren (plugin.tx_twantibot.settings.time
). Sie können angeben
- eine Mindestvorlaufzeit für die Einreichung von Erstvorlagen,
- eine Mindestzeit für alle Folgeanträge (z.B. bei Validierungsfehlern)
- und eine maximale Zeit.
Übertragungsmethode Vektor
Sie können den Vektor der Übertragungsmethode Ihres Formulars einschränken (plugin.tx_twantibot.settings.order
):
- GET-GET-GET
- GET-POSTEN
- POST-GET
- POST-POSTEN
Der erste Teil gibt die HTTP-Methode an, die verwendet werden muss, wenn Ihr Formular zum ersten Mal angezeigt wird, während jede (Wieder-)Übermittlung die zweite Methode verwenden muss
Extbase / Fluid Beispiel
{namespace ab=Tollwerk\TwAntibot\ViewHelpers}
<section id="comment-form">
<h1>Neuer Kommentar schreiben</h1>>
<!-- Antibot Zugriffskontrolle und -validierung -->
<f:if condition="{ab:access.granted(argument: 'newComment')}">">
<f:then>>
<f:form action="create" name="newComment" object="{newComment}">
<p>Mußfelder werden von <stark><abbr title="required">*</abbr></abbr></stark>.</p> gefolgt.
<div class="form-row type-text">
<Label für="name">Name <stark><abbr title="required">*</abbr></stark></label></label>
<f:form.textfield id="name" property="name" />
<f:form.validationResults for="newComment.name"><f:if condition="{validationResults.flattenedErrors}"><p><f:for each="{validationResults.errors}" as="error">{error.code}: {error}</f:for></p></f:if></f:form.validationResults> Ergebnisse>
</div>
<!-- Zusätzliche Formularfelder .... -->
<div class="form-row type-submit">
<f:form.submit class=""" value="Create new" />
<!-- Antibot Panzerfelder (Platz nach dem Absenden-Button) -->
<ab:panzer/>
</div>
</f:form>
</f:then>
<f:else>
<Ihnen wird der Zugriff auf dieses Formular aufgrund von Spam-Beschränkungen verweigert. Wenn du denkst, dass dies ein Fehler ist, kontaktiere bitte <f:link.email email email="test@test.com">test@test.com</f:link.email>.</p>.
</f:else>
</f:if> if>
</section>
Bitte beachten Sie, dass es unerlässlich ist, die Aktionen der Steuerung beim Versenden des Formulars nicht zwischenspeicherbar zu machen! Um dies zu erreichen, nimm sie in die nicht-cachierbare Aktionsliste deiner Plugin-Registrierung auf (ext_localconf.php
):
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin((
"Mautwerk". $_EXTKEY,
Kommentare',
array(
Kommentar' =>'Liste, anzeigen, neu, erstellen',
),
// nicht-cachierbare Aktionen
array(
Kommentar' =>'neu, erstellen',
)
);
Beispiel für Formhandler
TypoScript
plugin.Tx_Formhandler.settings.predef.contact {
templateFile {
}
initInterceptors.1 { {
config {
antibot {
token × × × × × = customToken
# ...
}
templateFile × < plugin.Tx_Formhandler.settings.predef.contact.templateFile
}
}
markierungen{
antibotArmor { {
# Die benutzerdefinierte Konfiguration sollte die gleiche wie oben sein
}
}
}
HTML-Template
<!-- ####TEMPLATE_FORM1#### beginnt -->
<form method="post" id="###formID#####" enctype="multipart/form-data">
<Feldsatz><!-- Formularfelder .... --></feldsatz>
<div>
####field_langId########
####field_submit_contact########
<!-- Antibot Panzerfelder (benutzerdefinierte Markierung) -->
####antibotArmor#######
</div>
</form>
<!-- ####TEMPLATE_FORM1##### Ende -->
<!-- ####TEMPLATE_ANTIBOT##### beginnen -->
<Ihnen wird der Zugriff auf dieses Formular aufgrund von Spam-Beschränkungen verweigert. Wenn du denkst, dass dies ein Fehler ist, kontaktiere bitte <a >info@manuscript-facsimiles.com</a>.</p>.
<!-- ####TEMPLATE_ANTIBOT###### Ende -->
Rechtliches
Copyright © 2017 tollwerk GmbH / Joschi Kuphal (joschi@kuphal.net / @jkphl). svg-sprite ist unter den Bedingungen der MIT-Lizenz lizenziert.
Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.
Verteilung:TW_ANTIBOT ist auf
0.01 % aller TYPO3 installiert.
- 0.02 % aller TYPO3 7.6.x Installationen installiert
- 16.67 % aller TYPO3 7.5.x Installationen installiert
- 5.88 % aller TYPO3 7.1.x Installationen installiert
Aktualität:TW_ANTIBOT ist auf dem neusten Stand (v.unknown) bei
100 % aller TYPO3 Installationen
- 0 % aller TYPO3 9.5.x Installationen
- 0 % aller TYPO3 9.3.x Installationen
- 0 % aller TYPO3 9.2.x Installationen
- 0 % aller TYPO3 8.7.x Installationen
- 0.02 % aller TYPO3 7.6.x Installationen
- 16.67 % aller TYPO3 7.5.x Installationen
- 0 % aller TYPO3 7.4.x Installationen
- 0 % aller TYPO3 7.3.x Installationen
- 0 % aller TYPO3 7.2.x Installationen
- 5.88 % aller TYPO3 7.1.x Installationen
- 0 % aller TYPO3 7.0.x Installationen
- 0 % aller TYPO3 6.2.x Installationen
- 0 % aller TYPO3 6.1.x Installationen
- 0 % aller TYPO3 6.0.x Installationen
- 0 % aller TYPO3 5.0.x Installationen
- 0 % aller TYPO3 4.7.x Installationen
- 0 % aller TYPO3 4.6.x Installationen
- 0 % aller TYPO3 4.5.x Installationen
- 0 % aller TYPO3 4.4.x Installationen
- 0 % aller TYPO3 4.3.x Installationen
- 0 % aller TYPO3 4.2.x Installationen
- 0 % aller TYPO3 4.1.x Installationen
- 0 % aller TYPO3 4.0.x Installationen
- 0 % aller TYPO3 3.5.x Installationen
PHP Version:TW_ANTIBOT wird benutzt mit
- 100 % PHP/7.0
Gosign-Responsive Index: TYPO3 Installationen nutzen TW_ANTIBOT zu
- 25 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
- 75 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist
Pagespeed: TYPO3 Installationen nutzen TW_ANTIBOT zu
- 25 % wenn der Pagespeed zwischen 80 % und 100 % ist
- 50 % wenn der Pagespeed zwischen 60 % und 80 % ist
- 0 % wenn der Pagespeed zwischen 40 % und 60 % ist
- 25 % wenn der Pagespeed zwischen 20 % und 40 % ist
- 0 % wenn der Pagespeed zwischen 0 % und 20 % ist
[DependciesAndConflicts]