티스토리 뷰
문제상황
단어가 왜 이래!!
사이트의 다운로드 파일을 프로그램으로 가져가는 것을 방지하기 위해 jCaptchar를 사용했다. 그런데 문제는 jCaptcha에서 발생되는 단어가 좀 민망한 단어들이 종종 있다는 것이다. 기능상의 문제는 아니었기에 그냥 두었는데 결국 거슬린다는 항의메일(이미지캡쳐까지..^^)이 날라와서 결국은 수정방법을 찾아보게 되었다. (고객의 불만은 나를 움직이게 한다~~.)
인터넷을 뒤져봤는데 생각보다 자료가 많지 않았다. 결국 jCaptchar 사이트에서 차근차근 찾아보기로 했다. 다행이도 해답이 들어있었다.
방법은 바로 워드발생기에서 사용하는 사전을 바꾸는 것이다. jCaptchar 는 기본적으로 영단어 600개를 포함한 사전(toddlist.properties)제공하며 여기서 사용할 단어를 가져온다. 그런데 이 사전 안에 없었으면 좋을 뻔한 단어들이 포함된 것이다. 다행스럽게도 확장성을 고려한 개발자들이 간단하게 사전 properties 설정으로만으로도 다른 사전으로 대체할 수 있도록 만들었다.
작업
- 새로운 사전 properties를 생성한다.
- 설정 XML에서 사전 properties 값을 변경한다.
1. 새로운 사전 properties 생성
/src 아래에 mywordlist.properties 를 생성하고 사용할 단어를 등록한다.
2. 사전 properties 변경
사전을 toddlist에서 mywordlist 로 변경한다.
수정 전
<bean id="wordgen" class="com.octo.captcha.component.word.wordgenerator.DictionaryWordGenerator"> <constructor-arg> <ref bean="filedict" /> </constructor-arg> </bean> <bean id="filedict" class="com.octo.captcha.component.word.FileDictionary"> <constructor-arg index="0"> <value>toddlist</value> </constructor-arg> </bean>
수정 후
<bean id="wordgen" class="com.octo.captcha.component.word.wordgenerator.DictionaryWordGenerator"> <constructor-arg> <ref bean="filedict" /> </constructor-arg> </bean> <bean id="filedict" class="com.octo.captcha.component.word.FileDictionary"> <constructor-arg index="0"> <value>mywordlist</value> </constructor-arg> </bean>
결과
영단어 대신 알파벳과 숫자를 랜덤으로 사용하도록 바꾸었다.
수정 전
수정 후
참고 https://www.google.com/recaptcha
댓글