سؤال

أنا أبحث عن بديل لـ JCaptcha، الذي يبدو أنه لم يعد يتم صيانته بعد الآن، وهو ليس جيدًا جدًا في البداية.يجب أن يتكامل البديل بشكل جيد مع تطبيقات الويب الخاصة بـ JavaEE.

كما أرى، هناك ثلاثة خيارات:

  • JCaptcha - لم تعد تتم صيانة واجهة برمجة التطبيقات الخام
  • SimpleCaptcha - واجهة برمجة تطبيقات أجمل بكثير، ورموز التحقق أجمل، ولكن يبدو أنها Java6 فقط
  • ReCaptcha - سهل الاستخدام، ويستخدم خدمة الويب عن بعد لإنشاء رموز التحقق، ولكن ليس لديه الكثير من التحكم في الشكل والمظهر

هل استخدم أي شخص أي منتجات أخرى، ويوصي بها؟

هل كانت مفيدة؟

المحلول

ريكابتشا هي كلمة التحقق الوحيدة التي يجب عليك استخدامها، لأنها كلمة التحقق الوحيدة التي تجعل العالم أفضل (تحسين نتائج التعرف الضوئي على الحروف إلى نص قديم)، مع قاعدة بيانات غير محدودة تقريبًا.

عادةً ما تكون جميع رموز التحقق الأخرى مقيدة بقاعدة البيانات الخاصة بها، أو لا تفعل شيئًا جيدًا لهذا العالم.

يحرر ::لقد وجدت خطوات كيفية تنفيذ كلمة التحقق باستخدام recaptcha.

يمكنك التحقق من كلمة التحقق عبر الإنترنت وغير متصل باستخدام Java هنا

نصائح أخرى

أنا مؤلف SimpleCaptcha.على الرغم من أنني أوصي - من أجل الإنسانية - باستخدام ReCaptcha حيثما أمكنك ذلك، فقد قدمت SimpleCaptcha لأن بعض المؤسسات لديها سياسات تحظر المكتبات مثل ReCaptcha.من المفترض أن يكون SimpleCaptcha مستقلاً تمامًا، دون أي تبعيات خارجية:طالما أنك في حاوية J2EE، يجب أن تكون جيدًا.

كما يتوفر SimpleCaptcha الآن إما لـ Java 1.5 أو Java 6.

ماذا يحدث عندما يكون ReCaptcha معطلاً/غير متاح؟هل تتوقف خدمتك ببساطة؟هل تتوقف ببساطة عن تسجيل الأشخاص عندما يتوقف الأمر؟هل تسمح للمستخدمين بالتسجيل حتى لو لم يكن ReCaptcha قيد التشغيل؟وإذا كان الأمر كذلك، فما هي التداعيات الأمنية لذلك؟خاصة إذا كنت تستخدم اختبار CAPTCHA لأكثر من مجرد الاشتراك، على سبيل المثال.نماذج إعادة تعيين كلمة المرور، نماذج تسجيل الدخول، ...والتي لن يكون مقبولاً استخدامها بدون مكون CAPTCHA.

إن عالم Java الخاص بـ CAPTCHAs في حالة حزينة، حيث يبدو أن SimpleCaptcha هو الحل الأفضل لأولئك منا الذين لا يمكنهم قبول خدمة مستضافة.

صنعت http://kaptcha.googlecode.com قبل أن تصبح recaptcha شائعة كما هي اليوم.كما يوفر لك أيضًا إمكانية استضافته بنفسك، وهو ما قد يكون ضروريًا في بعض المواقف.

Kaptcha هو إصدار معدل ومحدث بشكل كبير من SimpleCaptcha ويدعم JDK5/6.

SimpleCaptcha لطيف حقًا وسهل الاستخدام.

فيما يلي مثال عن كيفية استخدام SimpleCaptcha مع JSF 2.0 (تحتوي الصفحة الرئيسية على مثال لـ JSP)

لاحظ أنني لا أزعج نفسي بتخزين قيمة captcha في الفول، فأنا فقط أتحقق من صحتها.

الفول:

// 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"));
    }
}

الجزء ذو الصلة من الوجه:

        <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>

الجزء ذو الصلة من 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>

يتمتع :-)

يعد Kaptcha بديلاً جيدًا لـ Recaptcha إذا كنت تتطلع إلى استضافة خدمة captcha الخاصة بك بدلاً من الاعتماد على خدمة captcha تابعة لجهة خارجية (مثل recaptcha).

تمكنت من الحصول على المصدر (واحدًا تلو الآخر من المتصفح، وليس من GIT :-()) والإنشاء باستخدام 1.5.واجهت مشكلة مع إصدار JDK 1.5 الذي أدى إلى ظهور خطأ إصدار الفئة السيئة (الخطأ الذي يظهر عند تجميعه مع إصدار Java الأقدم معطل) والذي تم حله عندما قمت بنسخ الجرة التي بنيتها بنفسي وهي تعمل مثل السحر.أنصح بشدة أي شخص باستخدام هذا.لقد جربت jcaptcha ويجب أن أقول أنه سيء ​​..لا ينبغي على زوار الويب أن يواجهوا صعوبة في التحقق من الكود الموجود في الصورة، وهو ما يتعارض مع الغرض....

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top