Java captcha 라이브러리에 대한 권장 사항
더 이상 유지되지 않는 것 같고 시작되지 않는 것이 JCaptcha의 대체품을 찾고 있습니다. 대체는 JavaEE 웹앱과 잘 통합되어야합니다.
내가 볼 수 있는지 세 가지 옵션이 있습니다.
- JCaptcha- 더 이상 유지되지 않는 조잡한 API
- SimpleCaptcha- 훨씬 씬 더 좋은 API, 더 좋은 캡 차이지만 Java6 전용 인 것입니다.
- ReCaptcha- 사용하기 쉬우 며 원격 웹 서비스를 사용하여 캡차를 생성하지만 모양과 느낌에 대한 제어가 많지.
다른 사람이 추천하는 다른 사람이?
ReCaptcha 는 거의 같은 데이터베이스를 사용하여 세상을 더 좋게 만드는 유일한 보안 문자 (오래된 텍스트로 OCR 결과 개선)이기 때문에 많은 고유 보안 문자입니다.
다른 모든 캡 차는 일반적으로 데이터베이스에 의해 제한되거나 세상에 좋은 일을하지 않습니다.
편집 :: recaptcha를 사용하여 captcha를 구현하는 방법을 찾았습니다.
여기에서 Java를 사용하여 온라인 및 오프라인 보안 문자를 모두 확인할 수 있습니다.
저는 SimpleCaptcha 의 저자 입니다 . 인류를 위해 가능한 한 ReCaptcha를 사용하는 것이 좋지만 일부 조직에는 ReCaptcha와 같은 라이브러리를 금지하는 정책이 있기 때문에 SimpleCaptcha를 제공했습니다. SimpleCaptcha는 외부에서 완전히 독립형으로되어 있습니다. J2EE 컨테이너에있는 한 괜찮습니다.
또한 SimpleCaptcha는 이제 Java 1.5 또는 Java 6에서 사용할 수 있습니다.
ReCaptcha가 다운되거나 사용할 수없는 경우 어떻게? 서비스가 중단 중단? 가입을 중지하고 있습니까? ReCaptcha가 실행되지 않는 경우에도 사용자가 가입하도록 허용합니까? 보안에 어떤 의미가 있습니까? 특히 CAPTCHA 구성 요소 없이는 사용할 수없는 암호 양식, 로그인 양식 등 단순한 가입 이상의 용도로 CAPTCHA를 사용하는 경우.
CAPTCHA의 Java 세계는 슬픈 상태에 있습니다. SimpleCaptcha는 호스팅 된 서비스를 수락 할 수없는 우리를 최고의위한 솔루션으로 제안합니다.
recaptcha 전에가 선언처럼 인기를 끌기 http://kaptcha.googlecode.com 을 만들었습니다 . 또한 일부 상황에서 필요한 수있는 직접 호스팅 할 수있는 기능도 제공합니다.
Kaptcha는 SimpleCaptcha의 대폭 수정 및 업데이트 된 버전이며 JDK5 / 6을 지원합니다.
SimpleCaptcha는 정말 멋지고 사용하기 쉽습니다.
다음은 JSF 2.0에서 SimpleCaptcha를 사용하는 방법의 예입니다 (홈페이지에는 JSP에 대한 예가 있습니다)
나는 captcha 값을 bean에 저장하는 것을 귀찮게하지 않고 단지 그것을 귀찮게하지 않는다.
콩 :
// 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"));
}
}
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>
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 버전에서 잘못된 클래스 버전 오류 (이전 버전으로 컴파일 할 때 나타나는 오류)를 발생시키는 문제가 발생했습니다. 자바 버전이 엉망이 됨) 내가 직접 만든 항아리를 복사했을 때 해결 된 것이 매력적이다. 누구나 이걸 사용하라고 강력히 권하고 싶다 .jcaptcha를 시도 해봤는데 짜증 난다고 말해야 겠어 .. 웹 방문객들은 이미지의 코드를 확인하기 위해 고군분투해야합니다.
참고 URL : https://stackoverflow.com/questions/810493/recommendations-for-java-captcha-libraries
'ProgramingTip' 카테고리의 다른 글
x $ ed의 R 오류 : $ 연산자가 원자 벡터에 유효하지 않습니다. (0) | 2020.11.30 |
---|---|
C ++로 파일 만들기 (0) | 2020.11.30 |
클래스가 java.lang.Enum인지 확인 (0) | 2020.11.30 |
$ .ajax 선택 옵션 (0) | 2020.11.30 |
코드 숨김에서 명령 호출 (0) | 2020.11.30 |