Ankündigung

Einklappen
Keine Ankündigung bisher.

BOT-Schutz mit o. ohne CAPTCHA?

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Wollte noch kurz einwerfen, dass Anfang des Monats reCaptcher v3 rausgekommen ist, laut einigen Artikeln sollen User jetzt häufig seltener Fragen oder Bilderrätsel lösen.
    Hab es selber noch nie eingesetzt bzw. gebraucht, aber das wäre wahrscheinlich die erste Lösung welche ich mir noch mal genauer anschauen würde.

    https://www.heise.de/ix/meldung/reCA...n-4206883.html
    https://developers.google.com/recaptcha/

    Kommentar


    • #17
      Hast du dir auch die Nutzerkommentare angesehen, die sprechen Bände.

      Kommentar


      • #18
        Zitat von Paykoman Beitrag anzeigen
        Aber auch ich vertrete ja die Meinung alles wo der User nicht belästigt wird ist besser, daher ging es mir auch um diesen Aspekt und wenn es da nicht wirklich was gibt kann man das doch deutlich ausdrücken und nicht nur "ahh Captcha ist Müll"
        Ein Captcha ist aus Prinzip schon zum Scheitern verurteilt. Denn wenn ein einen Computer dazu bringen kann zwischen Computer und Mensch zu unterscheiden, dann kann ein anderer Computer auch dieses Wissen ausnutzen, um sich für den einen Computer wie ein Mensch zu verhalten.

        Es ist im Endeffekt ein ewiges Katz- und Mausspiel. Mal ist der eine vorne, dann der andere, dann wieder der eine, usw.

        Zitat von Paykoman Beitrag anzeigen
        Fakt ist, eine Ki kann ein Captcha nicht wie ein Mensch "sehen", wenn man eine Ki hat die zum aller ersten mal ein neuartiges Captcha öffnet (das im Gegensatz zu andere den Text im Kreis anzeigt und nicht linear), wird diese es nicht lösen können!
        Die ki muss es unzählige male durchführen um daraus zu lernen und ich denke der Schlüssel zum Erfolg ist hier die Fragestellung zur Grafik und ein Limit der Versuche das nicht durch IP/Cookie wechsel umgangen werden kann (FP).
        Wer sagt, dass die KI das über deinen Server machen muss? Du brauchst nur einen Menschen, der ein einziges mal die Regeln absteckt und dann die KI selbstständig Beispiel generieren und durchlaufen lässt. Arbeitsaufwand für den Menschen: Verschwindend gering. Das kann ein billiger Inder machen, der keine 10€ die Stunde kostet.

        Zitat von Paykoman Beitrag anzeigen
        Hinzu käme natürlich noch wo die Fragestellung platziert wird, mit HTML5 gäbe es ja auch genug Möglichkeiten diese nicht im selben DOM zu platzieren oder gar als PushMsg.
        Dafür gibts Headless Browser.

        Zitat von Paykoman Beitrag anzeigen
        Mit dem Google Aspekt hast Du schon recht, die Abteilungen haben den ganzen Tag nichts anderes im Kopf aber manchmal sorgt gerade das für Scheuklappen und hin und wieder sollen auch normale Menschen Geistesblitze haben
        Meiner Ansicht nach stellst du dir das ein bisschen zu einfach vor.

        Zum Nachlesen: https://understandinginnovation.blog...in-innovation/

        Kommentar


        • #19
          Nein eben nicht, auch ein Bot kann gültige Daten eintragen/absenden und z.B. bei Auktionen wie in eBay katastrophale Auswirkungen haben.
          Darum gibt es durch aus Situationen in denen ein Botschutz-(Prüfung) durch aus Sinn macht.
          Dann würde ich dem Bentuzer eher eine Email,SMS oder Whatsup Mitteilung schicken mit einem Bestätigungscode, wenn es sich um einen "heiklen" Prozess handelt.


          Das einzige was ich bei meinen Formularen benutze ist, wie lange es minimum dauern soll das Formular auszufüllen und bis jetzt hatte ich noch nie Spams, scheint echt gut zu klappen.

          PHP-Code:
          $form = new Form(ServerRequestInterface $request);
          $form->form('name');

          if (
          $form->isSent()) {

              
          $form->setTime(1); // in seconds

              
          $form->validate([
                  
          'username' => 'optional|alphaNum|minLen:2|maxLen:100',
                  
          'email' => 'email'
              
          ]);

              if (
          $form->isValid()) {
                  
          // return $response;
              
          } else {
                  
          // return $response;
              
          }

          Kommentar


          • #20
            Sehe ich ähnlich. Ich berechne die Zeit, die man benötigt anhand der auszufüllenden Felder und Gesamtmenge der Zeichen zu angenommenen Tastenanschlägen pro Minute, sowie Toleranzen.
            Durch die Parametrisierung bin ich relativ flexibel und habe auch weiter keine Probleme. Hin und wieder kommt je nach Zielgruppe mal wieder was durch, aber das ist dann schnell mit etwas Tuning an den Parametern schnell gefixt.

            Das klappt mit ein paar weiteren Kleinigkeiten bisher bei allen Projekten wunderbar.
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche Tutorials

            Kommentar


            • #21
              Zitat von Paykoman Beitrag anzeigen
              [...] besagte Bilder anklicken (was leider nen Bug hat und bei mir permanent nach anklicken eines Bildes, dieses heraus nimmt und durch ein neues ersetzt = unlösbar) [...]
              ist das nicht gewollt? Ich kenne das so, dass eine gewisse Anzahl Bilder nach dem Anklicken ersetzt wird und man so lange die Bilder mit dem gewünschten Inhalt anklicken muss, bis das Ersetzen aufhört.

              Kommentar


              • #22
                Zitat von MrChangelog Beitrag anzeigen
                ist das nicht gewollt? Ich kenne das so, dass eine gewisse Anzahl Bilder nach dem Anklicken ersetzt wird und man so lange die Bilder mit dem gewünschten Inhalt anklicken muss, bis das Ersetzen aufhört.
                Damit trainieren die kostenlos ihre künstliche Intelligenz.

                Kommentar


                • #23
                  Zitat von Paykoman Beitrag anzeigen
                  Bisher hatte ich jspit`s antiBot-Klasse implementiert, bin aber nicht wirklich sicher wie sinnvoll diese ist, da alles automatisch geregelt wird.
                  Die Klasse ist ja mittlerweile fast 5 Jahre alt und auf diesen Gebiet hat sich da ja eine Menge getan. Einige Empfehlungen aus Beiträgen (#19, #20) hier sind aber in der Klasse bereits umgesetzt.
                  Ich nutze die Klasse auch, jedoch sind die Zugriffszahlen dieser Seiten nicht für eine sichere Einschätzung der Wirksamkeit der Klasse geeignet. Da der Feedback trotz einer vierstelligen Anzahl Downloads === NULL ist, würde mich am Rande schon mal interessieren, ob und wenn ja wie oft Bots die Klasse ausgetrickst haben.

                  LG jspit

                  PHP-Klassen auf github

                  Kommentar


                  • #24
                    Hallo!


                    Ich setze Captchas nicht ein da sie nicht barrierefrei sind.


                    Ich nutze mehrere Schutzfunktionen.

                    Zum Einen Honeypots (obwohl diese auch schon von einigen Bots erkannt werden).

                    Dann noch die Zeit (die Zeit die der Besucher mindestens aufwenden muss und maximal benötigen darf).

                    Zusätzlich werden Get-Parameter einfach ignoriert, also das Ausfüllen der Formulare per Adresszeile ist nicht möglich.

                    Zudem verhindere ich dass jemand Programmgesteuert oder manuell zusätzliche Formularfelder einschleusen kann (das PHP-Script zählt die Formularfelder im Post und prüft auch die Namen der Formularfelder auf Gültigkeit).

                    Und natürlich wird HTML-Code in den Formularfeldern geprüft, genauso wie "bad words". Ist was im Text was nicht reingehört wird das Absenden des Formulars mit einer Fehlermeldung abgebrochen.

                    Außerdem gibt es meine Formulare nicht als HTML/PHP-Datei. Stattdessen liegen die Inhalte außerhalb des Document-Root-Verzeichnisses, und werden per PHP in die Seite geladen. Das macht es den Bots schwerer, die müssen dann die Links durchlaufen um öffentliche Formulare zu finden. Nicht öffentliche Formulare finden Bots somit nicht, da sie nicht in den Links auftauchen und es ja auch keine Dateien dafür gibt. Und in der Sitemap stehen die Links zu den Formularen nicht.

                    Gruß, René

                    Kommentar


                    • #25
                      Zu den Honigtöpfen:

                      Wenn ich zum Beispiel bei einem login Formular 2 gültige Felder habe und 1 honeypot dann brauche ich exakt 3 Versuche um herauszufinden welches Feld das honeypot ist.
                      Wenn das honeypot Feld mit CSS auf display none gesetzt wird und eine id verwendet wird, ist es auch einfach dies hieraus zu bekommen, da man nur die CSS einlesen muss und auf die id suchen und nachsehen, auch das ist ziemlich billig.

                      Was kann man tun?
                      Man kann mehrere honeypot Felder nutzen und zwar unregelmässig, Mal 2 mal 3 mal 4, zufällig natürlich.
                      Diese Felder immer an unterschiedlichen Positionen einblenden.

                      Die Honeypot-Felder nicht ausblenden, sondern entweder aus dem sichtbaren Bereich herausnehmen. Margin_left: 9999em; oder die darzustellende Grösse unter 1 Pixel verkleinern. height: 0.3px.

                      Beides zusammen ist im Moment Ende 2018 sehr zuverlässig.

                      Kommentar


                      • #26
                        Was haltet ihr von folgender Idee?


                        Anstatt mit Captchas & Co. arbeitet man mit einer ID oder Zufallszahl. Bevor das Formular abgesendet wird muss der User erstmal auf "Weiter" klicken. Dadurch wird eine Zufallszahl erzeugt, welche unter einer eindeutigen ID serverseitig zwischengespeichert wird (z.B. in einer Textdatei außerhalb des Document-Root-Verzeichnisses). Die Zufallszahl wird dem User per Email zugesendet. Der User gibt diese Zufallszahl in ein Eingabefeld ein. Nach Klick auf "Weiter/Absenden" wird die Eingabe mit dem serverseitig zwischengespeicherten Wert verglichen. Stimmen die Angaben wird das Formular gesendet, stimmen die Werte nicht wird das Senden des Formulars mit Fehlermeldung verhindert (das Formular bleibt aber mit allen Eingaben erhalten bzw. wird mit allen Eingaben neu geladen). Die rechtliche Seite lassen wir jetzt mal unbeachtet (der Gesetzgeber könnte ja eine "Behinderung der schnellen Kontaktaufnahme" darin sehen).

                        Kommentar


                        • #27
                          Zitat von protestix Beitrag anzeigen
                          Zu den Honigtöpfen:


                          (...) Die Honeypot-Felder nicht ausblenden (...) oder die darzustellende Grösse unter 1 Pixel verkleinern. height: 0.3px. (...)
                          Bei mir funktioniert das so nicht. Ich habe die Eingabefelder in ein DIV gefasst. Ich blende aber nicht die Eingabefelder aus, sondern das DIV. Und die Klasse heisst bei mir auch nicht "nosee", sondern anders. Für den Bot müsste das doch so aussehen als seien die Eingabefelder sichtbar?

                          Kommentar


                          • #28
                            Wenn du um jedes Input und Label Element ein Div packst, dann machst du in meinen Augen etwas nicht richtig.
                            Das gehört aber nicht in diesen Faden, kannst ja gerne einen eigenen auf machen.

                            Kommentar


                            • #29
                              Zitat von protestix Beitrag anzeigen
                              Wenn du um jedes Input und Label Element ein Div packst, dann machst du in meinen Augen etwas nicht richtig.
                              Weshalb? Das mache ich aus optischen Gründen. Natürlich ist das zum Eingabefeld gehörende Label im selben DIV. Mir stellt sich die Frage ob ein BOT darauf hereinfällt und das Eingabefeld trotzdem als sichtbar ansieht.

                              Kommentar


                              • #30
                                Schau in den Quelltext, das sieht der Bot.

                                Kommentar

                                Lädt...
                                X