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 / oder Name (sie erhalten automatisch ein antibot_*[] 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


Stichprobe n=36923 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>