Frage

Ich bin auf der Suche nach einem Ersatz für JCaptcha, das scheint nicht mehr aufrechterhalten werden, und ist nicht sehr gut zu beginnen. Der Ersatz hat zu integrieren gut mit JavaEE Webapps.

Wie ich es sehe, gibt es drei Möglichkeiten:

  • JCaptcha - nicht mehr aufrechterhalten, roh API
  • SimpleCaptcha - viel schöner API, schöner Captchas, scheint aber Java6 nur zu sein
  • ReCaptcha - einfach zu bedienen, verwendet Remote-Web-Service-Captchas zu erzeugen, aber nicht viel Kontrolle über Look and Feel

Hat jemand irgendwelche anderen verwendet, dass sie würde empfehlen?

War es hilfreich?

Lösung

ReCaptcha die einzige Captcha ist, sollten Sie verwenden, weil es das einzig captcha ist, dass die Welt besser macht (Verbesserung der OCR Ergebnisse zu dem alten Text), mit fast unbegrenzter Datenbank.

Alle anderen Captchas sind in der Regel durch seine Datenbank beschränkt oder gar nichts in dieser Welt gut tun.

EDIT :: I Schritte gefunden, wie Captcha implementieren recaptcha verwenden.

können Sie prüfen, sowohl online als auch offline captcha mit Java hier

Andere Tipps

Ich bin der Autor des SimpleCaptcha . Während ich würde empfehlen - aus Gründen der Menschlichkeit - mit ReCaptcha wo können Sie, sofern ich SimpleCaptcha weil einige Organisationen Richtlinien haben, die Bibliotheken wie ReCaptcha verbieten. SimpleCaptcha soll völlig eigenständige werden, ohne externe Abhängigkeiten. So lange wie Sie in einem J2EE-Container sind, sollten Sie gut sein

Auch ist SimpleCaptcha jetzt entweder für Java 1.5 oder Java 6.

Was passiert, wenn ReCaptcha nach unten / nicht verfügbar ist? Hat Ihr Service einfach aufhören? Sie stoppen Sie einfach Leute anmelden, wenn es nach unten? Erlauben Sie Benutzern auch zu registrieren, wenn ReCaptcha läuft nicht? Wenn ja, was sind die Auswirkungen auf die Sicherheit dieses? Vor allem, wenn Sie CAPTCHA verwenden für mehr als nur eine Anmeldung, zum Beispiel Passwort zurücksetzen Formulare, Login-Formulare, ..., die nicht akzeptabel wären ohne die CAPTCHA-Komponente zu verwenden.

Die Java-Welt von CAPTCHAs ist in einem traurigen Zustand, mit SimpleCaptcha scheinbar die beste Lösung für die von uns gibt, die einen gehosteten Dienst nicht annehmen kann.

Ich habe http://kaptcha.googlecode.com vor recaptcha so populär geworden, wie es heute ist. Es bietet Ihnen auch die Möglichkeit, es selbst zu hosten, was in einigen Situationen erforderlich sein kann.

Kaptcha ist eine stark modifizierte und aktualisierte Version von SimpleCaptcha und unterstützt JDK5 / 6.

SimpleCaptcha ist wirklich schön und einfach zu bedienen.

Hier ist ein Beispiel ist, wie SimpleCaptcha mit JSF 2.0 zu verwenden (die Homepage ein Beispiel für JSP hat)

Beachten Sie, dass ich nicht einmal den Captcha-Wert in der Bohne speichern stört, ich bin es nur zu validieren.

Die Bohne:

// imports missing here

@ManagedBean
@SessionScoped
public class LoginBean implements Serializable
{
    public void validateCaptcha(FacesContext context,
            UIComponent componentToValidate,
            Object value)
            throws ValidatorException
    {
        HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
        Captcha secretcaptcha = (Captcha) session.getAttribute(Captcha.NAME);
        if (secretcaptcha.isCorrect(value.toString()))
            return;

        // optional: clear field
        ((HtmlInputText) componentToValidate).setSubmittedValue("");

        throw new ValidatorException(new FacesMessage("Captcha does not match"));
    }
}

Das relevante Segment der Facelet:

        <h:form id="CaptchaForm">
            Type this: <br/>
            <h:graphicImage id="CaptchaImgID" value="/simpleCaptcha.png"/> <br/>
            <h:inputText id="CaptchaID"
                         required="true"
                         requiredMessage="Captcha missing"
                         validator="#{loginBean.validateCaptcha}"
                         validatorMessage="Captcha does not match"
                         immediate="true">
            </h:inputText>
            <br/>
            <h:commandButton value="Check"/>

            <p/>
            <!-- message for the input field -->
            <h:message id="CaptchaMsgID" for="CaptchaID" style="color:red" />
        </h:form>

Das relevante Segment der web.xml:

<servlet>
    <servlet-name>SimpleCaptcha</servlet-name>
    <servlet-class>nl.captcha.servlet.SimpleCaptchaServlet</servlet-class>
<init-param>
    <param-name>captcha-width</param-name>
    <param-value>250</param-value>
</init-param>
<init-param>
    <param-name>captcha-height</param-name>
    <param-value>75</param-value>
</init-param>
</servlet>
<servlet-mapping>
    <servlet-name>SimpleCaptcha</servlet-name>
    <url-pattern>/simpleCaptcha.png</url-pattern>
</servlet-mapping>

Genießen Sie: -)

Kaptcha ist eine schöne Alternative zu Recaptcha wenn Sie Ihren eigenen captcha Service suchen, anstatt Host auf einem Dritten Captcha Dienst unter Berufung (wie recaptcha).

Ich konnte Quelle erhalten (eines nach der anderen aus Browser, nicht :-( GIT) und baut mit 1.5. Hatte ich ein Problem mit der JDK 1.5-Version wirft die schlechte Klassenversion Fehler auf (die, die aufkommt, wenn kompiliert mit älteren Java-Version ist verkorkste), die aufgelöst wurde, als ich das Glas ich selbst gebaut kopiert und es wirkt wie ein Zauber. ich würde jedem dieser dringend raten zu verwenden. ich habe versucht, JCaptcha und ich muss sagen, es saugt .. die Besucher die Bahn sollte nicht kämpfen müssen, um den Code in dem Bild, um zu überprüfen, das den Zweck ....

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top