테스트 사이트 - 개발 중인 베타 버전입니다

kcaptcha 부분의 주민번호처럼 13자리수 오인탐지 보안관련 문의드립니다. 채택완료

늙은호랑이 1년 전 조회 1,199

아래와 같은 보안조취사항을 전달받았습니다.

보드는 그누보드5 최신버전을 사용하고 있습니다.

 

아래와 같이 타임 스탬프 데이터가 주민번호로 오인탐지 되고 있어 확인 및 조치

탐지유형 : 개인정보유입탐지 탐지근거 : 주민등록번호 : 171223####### 위험도 : 보통 조치 : 탐지 URL : https://도메인/plugin/kcaptcha/kcaptcha_images.php

GET /plugin/kcaptcha/kcaptcha_images.php?t=1712233387317 HTTP/1.1

위와 같은 조취 권고사항을 받았습니다.

kcaptcha_images.php 의 t 변수 자릿수가 주민번호와 동일한 숫자 13자리여서 주민번호로 오인탐지 보안 오류가 생긴것 같습니다.

위 t 변수 자리수를 주민번호와 동일한 13자리가 아닌 10자리나 그이상 자릿수로 수정하려면 어느 부분을 수정해야 하는지 문의드립니다.

감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
1년 전

plugin\kcaptcha\kcaptcha.js

 

파일 열어서 

 

</p>

<p>var mp3_url = ""; </p>

<p>요기에 추가 </p>

<p>let random_number = Math.floor(Math.random() * 1000);</p>

<p> </p>

<p>캡차 getTime() 뒤에 + random_number 추가 해주세요</p>

<p>$('#captcha_img').attr('src', g5_captcha_url+'/kcaptcha_image.php?t=' + (new Date).getTime() + random_number);</p>

<p>

 

풀코드입니다.

</p>

<p>$(function(){</p>

<p>    var mp3_url = "";</p>

<p>    let random_number = Math.floor(Math.random() * 1000);</p>

<p> </p>

<p>    $(document).on( "click", "#captcha_reload", function(){</p>

<p>        $.ajax({</p>

<p>            type: 'POST',</p>

<p>            url: g5_captcha_url+'/kcaptcha_session.php',</p>

<p>            cache: false,</p>

<p>            async: false,</p>

<p>            success: function(text) {</p>

<p>                $('#captcha_img').attr('src', g5_captcha_url+'/kcaptcha_image.php?t=' + (new Date).getTime() + random_number);</p>

<p>            }</p>

<p>        });</p>

<p> </p>

<p>        $.ajax({</p>

<p>            type: 'POST',</p>

<p>            url: g5_captcha_url+'/kcaptcha_mp3.php',</p>

<p>            cache: false,</p>

<p>            async: false,</p>

<p>            success: function(url) {</p>

<p>                if (url) {</p>

<p>                    mp3_url = url + "?t="+new Date().getTime() + random_number;</p>

<p>                    $("#captcha_audio").attr("src", mp3_url);</p>

<p>                }</p>

<p>            }</p>

<p>        });</p>

<p>    });</p>

<p> </p>

<p>    $(document).on( "click", "#captcha_mp3", function(){</p>

<p>        $("body").css("cursor", "wait");</p>

<p> </p>

<p>        $.ajax({</p>

<p>            type: 'POST',</p>

<p>            url: g5_captcha_url+'/kcaptcha_mp3.php',</p>

<p>            cache: false,</p>

<p>            async: false,</p>

<p>            success: function(url) {</p>

<p>                if (url) {</p>

<p>                    mp3_url = url + "?t="+new Date().getTime() + random_number;</p>

<p>                }</p>

<p>            }</p>

<p>        });</p>

<p> </p>

<p>        var html5use = false;</p>

<p>        var html5audio = document.createElement("audio");</p>

<p>        if (html5audio.canPlayType && html5audio.canPlayType("audio/mpeg")) {</p>

<p>            var wav = new Audio(mp3_url);</p>

<p>            wav.id = "mp3_audio";</p>

<p>            wav.autoplay = true;</p>

<p>            wav.controls = false;</p>

<p>            wav.autobuffer = false;</p>

<p>            wav.loop = false;</p>

<p> </p>

<p>            if ($("#mp3_audio").length) $("#mp3_audio").remove();</p>

<p>            $("#captcha_mp3").after(wav);</p>

<p> </p>

<p>            html5use = true;</p>

<p>        }</p>

<p> </p>

<p>        if (!html5use) {</p>

<p>            var object = '<object id="mp3_object" classid="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95" height="0" width="0" style="width:0; height:0;">';</p>

<p>            object += '<param name="AutoStart" value="1" />';</p>

<p>            object += '<param name="Volume" value="0" />';</p>

<p>            object += '<param name="PlayCount" value="1" />';</p>

<p>            object += '<param name="FileName" value="' + mp3_url + '" />';</p>

<p>            object += '<embed id="mp3_embed" src="' + mp3_url + '" autoplay="true" hidden="true" volume="100" type="audio/x-wav" style="display:inline;" />';</p>

<p>            object += '</object>';</p>

<p>            if ($("#mp3_object").length)</p>

<p>                $("#mp3_object").remove();</p>

<p>            $("#captcha_mp3").after(object);</p>

<p>        }</p>

<p> </p>

<p>        $("body").css("cursor", "default");</p>

<p>        return false;</p>

<p> </p>

<p>    }).css('cursor', 'pointer');</p>

<p> </p>

<p>    $("#captcha_reload").trigger("click");</p>

<p>});</p>

<p> </p>

<p>// 출력된 캡챠이미지의 키값과 입력한 키값이 같은지 비교한다.</p>

<p>function chk_captcha()</p>

<p>{</p>

<p>    var captcha_result = false;</p>

<p>    var captcha_key = document.getElementById('captcha_key');</p>

<p>    $.ajax({</p>

<p>        type: 'POST',</p>

<p>        url: g5_captcha_url+'/kcaptcha_result.php',</p>

<p>        data: {</p>

<p>            'captcha_key': captcha_key.value</p>

<p>        },</p>

<p>        cache: false,</p>

<p>        async: false,</p>

<p>        success: function(text) {</p>

<p>            captcha_result = text;</p>

<p>        }</p>

<p>    });</p>

<p> </p>

<p>    if (!captcha_result) {</p>

<p>        alert('자동등록방지 입력 글자가 틀렸거나 입력 횟수가 넘었습니다.\n\n새로고침을 클릭하여 다시 입력해 주십시오.');</p>

<p>        captcha_key.select();</p>

<p>        captcha_key.focus();</p>

<p>        return false;</p>

<p>    }</p>

<p> </p>

<p>    return true;</p>

<p>}</p>

<p>

 

이렇게 변경하시면 랜덤값이 추가로 붙어서 원하시는데로 됩니다.

 

회원가입도 잘되는거 방금 테스트 했습니다.

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

해결방법을 알려 주셔서 정말 감사합니다. ^^*

적용해 보도록 하겠습니다.

 

즐겁고 행복한 하루 되세요~

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

해결방법을 알려 주셔서 정말 감사합니다. ^^*

적용해 보도록 하겠습니다.

 

즐겁고 행복한 하루 되세요~

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인