문제

나는 더 이상 유지되지 않는 것 같고 시작하기에 좋지 않은 JCAPTCHA의 대체물을 찾고 있습니다. 교체품은 Javaee WebApps와 잘 통합되어야합니다.

내가 볼 수 있듯이 세 가지 옵션이 있습니다.

  • JCAPTCHA- 더 이상 유지 관리되지 않음, 조잡한 API
  • Simplecaptcha- 훨씬 더 멋진 API, 더 좋은 보안치, 그러나 Java6 만있는 것 같습니다.
  • Recaptcha- 사용하기 쉽고 원격 웹 서비스를 사용하여 보안 문자를 생성하지만 모양과 느낌을 많이 제어하지 않습니다.

다른 사람을 사용한 사람이 있습니까?

도움이 되었습니까?

해결책

recaptcha 거의 무제한 데이터베이스를 사용하여 세상을 더 좋게 만드는 유일한 보안 문자이기 때문에 사용해야 할 유일한 보안 문자입니다.

다른 모든 보안 문자는 일반적으로 데이터베이스에 의해 제한 되거나이 세상에는 좋은 일이 없습니다.

편집 :: recaptcha를 사용하여 Captcha를 구현하는 방법을 찾았습니다.

Java를 사용하여 온라인 및 오프라인 보안 문자를 모두 확인할 수 있습니다. 여기

다른 팁

나는 저자입니다 Simplecaptcha. 인류를 위해서는 RECAPTCHA를 사용할 수있는 곳에서 추천하지만 일부 조직에는 RecAptcha와 같은 도서관을 금지하는 정책이 있기 때문에 SimpleCaptcha를 제공했습니다. Simplecaptcha는 외부 의존성이없는 전적으로 독립형이어야합니다. J2EE 컨테이너에있는 한 좋을 것입니다.

또한 Java 1.5 또는 Java 6에서 Simplecaptcha를 사용할 수 있습니다.

Recaptcha가 다운/사용할 수 없을 때 어떻게됩니까? 서비스가 단순히 중지됩니까? 사람들이 쓰러 졌을 때 사람들이 사인하는 것을 중지합니까? Recaptcha가 실행되지 않더라도 사용자가 가입 할 수 있습니까? 그렇다면 이것의 보안 영향은 무엇입니까? 특히 가입만으로 Captcha를 사용하는 경우, 예를 들어 비밀번호 양식, 로그인 양식을 재설정합니다. 이는 Captcha 구성 요소 없이는 사용할 수 없습니다.

보안 문자의 Java World는 슬픈 상태에 있으며, Simplecaptcha는 호스팅 된 서비스를 받아 들일 수없는 사람들에게 가장 적합한 솔루션으로 보입니다.

내가 만들었다 http://kaptcha.googlecode.com Recaptcha가 오늘날처럼 인기가 있기 전에. 또한 어떤 상황에서는 필요한 경우 직접 호스팅 할 수있는 능력을 제공합니다.

Kaptcha는 Simplecaptcha의 심하게 수정되고 업데이트 된 버전이며 JDK5/6을 지원합니다.

Simplecaptcha는 정말 멋지고 사용하기 쉽습니다.

다음은 JSF 2.0과 함께 Simplecaptcha를 사용하는 방법 예입니다 (홈페이지에는 JSP의 예가 있습니다).

나는 콩에 보안 문자 값을 저장하는 것을 귀찮게하지 않으며, 유효성이 있습니다.

콩 :

// 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와 같은)에 의존하는 대신 자신의 보안 문자 서비스를 주최하려는 경우 Recaptcha의 좋은 대안입니다.

나는 소스를 얻을 수 있었고 (하나는 git :-이 아닌 브라우저에서 하나씩) 1.5로 빌드 할 수 있었고 JDK 1.5 버전에 나쁜 클래스 버전 오류를 던지는 데 문제가있었습니다 (이전과 함께 컴파일 될 때 발생하는 것. Java 버전은 엉망이되었습니다) 나는 내가 직접 만든 항아리를 복사 할 때 해결되었고 그 매력처럼 작동합니다. 나는 누구나 이것을 사용하도록 강력히 조언 할 것입니다. 나는 Jcaptcha를 시도했고 나는 그것을 짜증나라고 말해야합니다. 이미지의 코드를 확인하기 위해 고군분투해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top