가칭) 텍스트 캡챠 ... 테스트 좀 부탁 드립니다.
기존에 등록방지에 사용하던 이미지형 캡챠는 웹접근성에 위배(?) 된다고 하여 안되는 머리로 몇날 몇일을 고심하여 급조한 캡챠 프로그램 입니다.
음성지원이 되는 reCaptcha 등의 사용도 고려해 보았으나 다국어 지원이 되지 않는것 같습니다.
http://sir.co.kr/plugin/tcaptcha/sample.php
많은 테스트 부탁 드리며, 문제점은 댓글로 남겨주시면 바로 확인하여 가능한 부분이면 빨리(?) 반영해 놓겠습니다.
이번중 일요일까지 캡챠를 가장 먼저 뚫어 주시는 분께는 지운이 아빠가 사용하던 텀블러를 깨끗히 씻어서 착불로 보내 드리도록 하겠습니다.
감사합니다.
개발 참고사이트)
http://textcaptcha.com/demo

음성지원이 되는 reCaptcha 등의 사용도 고려해 보았으나 다국어 지원이 되지 않는것 같습니다.
http://sir.co.kr/plugin/tcaptcha/sample.php
많은 테스트 부탁 드리며, 문제점은 댓글로 남겨주시면 바로 확인하여 가능한 부분이면 빨리(?) 반영해 놓겠습니다.
이번중 일요일까지 캡챠를 가장 먼저 뚫어 주시는 분께는 지운이 아빠가 사용하던 텀블러를 깨끗히 씻어서 착불로 보내 드리도록 하겠습니다.
감사합니다.
개발 참고사이트)
http://textcaptcha.com/demo

|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 20개
더욱더 괜찮은거는
문근영 원빈 등등 인물을 마우스로 똑같이 그리는 캡챠형식이 좋을듯합니다. 정밀분석하며
사람의 두뇌 발전에 힘을 쓰게 만들고 노안걱정까지 걱정하여 나라에서 큰 수상을 내릴지도 모릅니다
섬세함과 고도에 집착력을 넣는 마우스로 안되는분들도 계시겠지만
걱정하지마십시요 놀라운 터치터치 터치펜! 지금 9302원에 구매가능합니다
[바로가기] 문의전화 [안받음]
그래도 제수준에는 딱 맞습니다.
두번씩이나 정답맞추었습니다.
끝없이 계속나오는 질문..ㅠㅠ
매크로로 1부터 숫자올라가서 대입하게만들었더니 몇초안에 뚫리는 문제점이..
텍스트를 숫자로 기호로 치환하고 순서별 연산이 들어가면
간단한 봇을 만드는 형태로도 뚫릴거라 예상합니다.
경우의 수가 너무 적은게 문제 인거 같아요
다시보니 "사용하던" 텀블러;;
제길;;
http://sir.co.kr/bbs/board.php?bo_table=cm_free&wr_id=841197
<!-- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -->
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>sir.co.kr - tcaptcha뚫기</title>
</head>
<body topmargin="0" leftmargin="0" >
tcaptcha 를 뚫어볼까요...?
<button id="post_btn" onclick="get_textCaptcha();">켑찹뿌리기</button> <br/>
<input type="text" value="" size="50" id="display_text" /><br />
<input type="text" value="" size="5" id="display_number" /><br />
<script type="text/javascript">
var test_url = 'http://sir.co.kr/plugin/tcaptcha/sample.php';
var tcaptcha_run_url = 'http://sir.co.kr/plugin/tcaptcha/run.php';
var transport = 'http://localhost/test/sir.tcaptcha/transport.php';
var phpsessid = '';
var req = getHttpRequest();
function getHttpRequest()
{
var req = null;
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP"); // 5.0 이후 버전
}
catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP"); // 5.0 이전 버전
}
catch(e1) {
req = null;
}
}
}
else if (window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
}
catch (e) {
req = null;
}
}
return req;
}
function get_textCaptcha()
{
var param = 'transport_url='+encodeURI(tcaptcha_run_url)+'&transport_method=get';
param += '&t='+(new Date).getTime();
req.open('POST', transport, true);
req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
req.setRequestHeader('content-length', param.length);
req.setRequestHeader('Connection', 'close');
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
// do nothing;
if (req.responseText.length) {
//alert(req.responseText);
display_it(req.responseText, translate(req.responseText));
}
}
}
};
req.send(param);
}
function display_it(text, number)
{
document.getElementById('display_text').value = text;
document.getElementById('display_number').value = number;
}
function trim(str)
{
return str.replace(/^\s+/, '').replace(/\s+$/, '');
}
{
//<strong>5</strong>, <strong>이십</strong> 그리고 <strong>25</strong> ~ 중에서 가장 큰 수는?
//~ 중에서 가장 작은 수는?
//여섯 더하기 9 ?
//10 더하기 열셋 ?
//열하나 + 15 = ?
var matches = text.match(/^(.*) 중에서 가장 (큰|작은) 수는 ?$/);
if (matches) {
var num = matches[1];
var min_max = matches[2];
num = num.replace('그리고', ',').replace('<strong>', '').replace('</strong>', '');
var num_arr = num.split(',');
var ret = 0;
for (var i = 0; i < num_arr.length; i++) {
if (i == 0) ret = intify(trim(num_arr[i]));
else {
var tmp = intify(trim(num_arr[i]));
if (min_max == '큰' && (ret < tmp)) ret = tmp;
else if (min_max == '작은' && (ret > tmp)) ret = tmp;
}
}
return ret;
}
var num_arr = text.split(' ');
if (num_arr) {
var n1 = intify(num_arr[0]);
var op = num_arr[1];
var n2 = intify(num_arr[2]);
switch(op) {
case '+':
case '더하기':
return n1 + n2;
case '-':
case '빼기':
return n1 - n2;
case '*':
case '곱하기':
return n1 * n2;
case '/':
case '나누기':
return n1 / n2;
default: return null;
}
}
return null;
}
function intify(input)
{
if (input.test(/^([0-9]+)$/)) return parseInt(input);
// 여기는 아직 완성이 안됐음...
}
// 그냥 n millis 동안 멈추기
function pause(milis)
{
var now = new Date();
var exitTime = now.getTime()+milis;
while (true) {
now = new Date();
if (now.getTime() > exitTime) return;
}
}
</script>
</body>
</html>
trnasport.php는 예전에 잠깐 사용한 jacobswell 아이디로 쓴 글에 있으니까 찾아보면 나옵니다.