Marvin Esse: Bei Captcha-Reload wird kein neues Bild erzeugt/angezeigt

Hallo,

ich habe mir ein eigenes kleines Captcha-Script geschrieben. Das Bild wird dann wie folgt zur Anzeige gebracht:

<div id="captcha"><img src="/scripts/captcha.php"></div>

Nun möchte ich dem Anwender die Möglichkeit geben, das Captcha neuzuladen. Hierzu rufe ich per Ajax ein Script auf, das auch wieder nichts anderes macht als

<img src="/scripts/captcha.php">

Und die Ausgabe (und damit eigentlich das neue Bild) in das Div schreibe: document.getElementById("captcha").innerHTML = resulttext;

Kann mir jemand sagen, warum das nicht klappt?

LG Marvin

  1. Hello,

    abgesehen davon, das Captchas Anti-Convenience oder Uncomfortable sind, kannst Du versuchen, das über die erbetenen Cache-Strategien für den Browser zu steuern.

    Du benötigst da kein Ajax. Du brauchst nur dem <img> eine neue Source zuweisen. Das ist nur eine einzige JS-Anweisung.

    Außerdem solltest Du der Bildausgabe einen "Last-modified"-Header mitgeben.

    Und dann kannst Du noch die Brutalmethode wählen:
    Einfach an den Request einen Parameter mit der aktuellen Zeit anhängen. Dann sollte die Ressource für den Browser auf jeden Fall eine andere sein, als die vorhergehende.

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es
    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    1. Hallo Tom,

      das war es tatsächlich… Da hab ich mich wieder täuschen lassen, denn Seite neuladen hatte immer funktioniert.

      Jetzt funktioniert es... Vielen Dank!

      LG Marvin

  2. @@Marvin Esse

    <img src="/scripts/captcha.php">
    

    Hier fehlt das notwendige alt-Attribut. Auch wenn man keinen Alternativtext angeben will, muss es vorhanden sein (mit Leerstring als Wert), ansonsten lesen Screenreader den Dateinamen vor.

    Bei einem CAPTCHA kommt ein Blinder/Sehschwacher sowieso nicht weiter, du könntest hier also gleich

    <img src="/scripts/captcha.php" alt="Ich scheiß auf dich!">
    

    schreiben, wenn du nicht als Alternative zusätzlich ein Audio-CAPTCHA anbietest.

    Oder noch besser: auf CAPTCHAs verzichtest und dir eine andere Lösung für dein Problem überlegst (anstatt dieses auf die Nutzer abzuwälzen).

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    1. Oder noch besser: auf CAPTCHAs verzichtest und dir eine andere Lösung für dein Problem überlegst (anstatt dieses auf die Nutzer abzuwälzen).

      Spam und Phishing-Angriffe richtigen sich nicht hauptsächlich gegen den Seitenbetreiber(innen) und die paar Email-Adressen, die vielleicht auf der Kontaktseite abzugreifen sind. Die Angreifer(innen) wollen einen möglichst hohen return-on-investment erzielen, sie richten ihre Angriffe gezieltt gegen die Endnutzer(innen). Dass man damit auch den Seitenbetreiber(innen) Schaden zufügt, nimmt man billigend in Kauf. Phishing ist also ein Problem der Seitenbetreiber(innen) und der Nutzer(innen). Es hat schon beinahe was von victim-blaming, wenn du die Opfer solcher Cyber-Attacken mitverantwortlich für den entstandenen Schaden machst. Ich glaube nicht, dass du das beabsichtigst, aber deine Formulierung ist zumindest nicht unproblematisch.

      Das Captcha ist für viele kleine bis mittelständige Unternehmen und Personen die einzige ökonomisch vertretbare Lösung, die man zum Selbstschutz und zum Schutz der eigenen Nutzer(innen) implementieren kann. Selbstverständlich sollte das dann auch für alle Personengruppen zugänglich sein, insofern geb ich deiner Kritik inhaltlich Recht.

      Für finanzstärkere Unternehmen gibt es auch bessere Lösung, Facebook ist in dem Bereich sehr aktiv: https://code.facebook.com/posts/1586836328241009/spam-fighting-scale-recap/

      1. Hello,

        Statistik

        mich würde interessieren, wieviele Spam-Posts auf Formulare und wieviele Spam-Mails auf eMail-Namen ein Server und dann später der Empfänger überhaupt bekommt.

        Mails

        SPAM-Mail-Versuche bekommt mein Mail-Server haufenweise (ca. 2.500 bis 3.000), aber es kommen für die ca. 150 Mailkonten nur ungefähr 4-5 Spammails durch. Der Rest wird in den unterschiedlichsten Schichten (im Server) schon gefiltert und rejected. Die Anzahl der Nutzmails beträgt dabei übrigens nur ca. 300-500 / Tag.

        Bisher (seit ca. 2007) hat sich sich keiner der Kontoinhaber jemals beschwert, dass erwartete Mails nicht angekommen wären, obwohl ich immer mal wieder darauf aufmerksam mache, dass ich derartige Informationen benötigen würde.

        #Formulare Für das Posten von Formularen kann man jeweils eine eigene Session abspalten mit einem "not valid before"-Marker. Damit kann ein Bot genau in dem Zeitfenster
        t-vorlauf < t-post < session-lifetime ein Posting in den Eingangspuffer manövrieren und dort wird ja noch die Plausibilität der Daten überprüft. Indem man dafür eine eigene Session abspaltet, wird die Programmlogik extrem einfach.

        Damit bemomme ich ebenfalls maximal 5 Spam-Postings pro Tag für ca. 35 Domains, die (teilweise mehrere) Posting-Module haben. Und das müssen die Domainbetreuer dann meistens sowieso selber manu-visuell kontrollieren. Es sind meistens irgendwwelche Spinne, die politische Hetzreden hinterlassen, die sich zwar auf vorausgegangene Postings beziehen, die aber keiner ernst nehmen will - außer, dass man sie zählt.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
        1. Hello,

          Nachtrag zu

          #Mails die Spam-Versuche hatten sich erheblich verringert, seitdem wir angefangen hatten alle chinesischen IP-Bereiche mit Rechtsverletzungen rigoros auszusperren. Keiner unserer Teilnehmer hat direkte Geschäftskontakte nach China.

          Ich hatte darüber schon mal berichtet hier im Forum. Die Spam-Mail-Anzahl von damals war meiner Erinnerung nach zehn Mal so hoch (also >35.000 am Tag).

          "Echte Mailserver" lachen darüber auch noch, aber da habe ich keine Zahlen, die ich selber überprüfen kann. Und hier ging es ja um KMU und nicht um Großbetriebe und -provider.

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es
          Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
          1. Hallo,

            ich kann von meiner Seite aus nur soviel dazu beitragen:

            • das Captcha war von der Fachabteilung in einem Pflichtenheft gefordert.
            • Wenn die späteren Nutzer (ausschließlich Techniker) blind wären, wären sie keine Techniker, würden die Seite wiederrum nicht nutzen (müssen)
            • Die Seite mit dem Captcha erzeugt neben einer Mail auch schon Datenbank-Einträge. Diese sollten auch nicht erst bereinigt werden müssen
            • Unsere Nutzer können selber persönliche Whitelists erstellen, da hilft dann auch der Spamfilter nur noch bedingt.

            Wie auch immer... Das ursprüngliche Problem konnte dank Eurer Hilfe gelöst werden und die Hinweise und Warnungen sind gelesen und verstanden.

            Nochmals vielen Dank.

            LG Marvin