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

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

QA

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

답변 3

본문

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

보드는 그누보드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

plugin\kcaptcha\kcaptcha.js

 

파일 열어서 

 


var mp3_url = ""; 
요기에 추가 
let random_number = Math.floor(Math.random() * 1000);
 
캡차 getTime() 뒤에 + random_number 추가 해주세요
$('#captcha_img').attr('src', g5_captcha_url+'/kcaptcha_image.php?t=' + (new Date).getTime() + random_number);

 

풀코드입니다.


$(function(){
    var mp3_url = "";
    let random_number = Math.floor(Math.random() * 1000);
 
    $(document).on( "click", "#captcha_reload", function(){
        $.ajax({
            type: 'POST',
            url: g5_captcha_url+'/kcaptcha_session.php',
            cache: false,
            async: false,
            success: function(text) {
                $('#captcha_img').attr('src', g5_captcha_url+'/kcaptcha_image.php?t=' + (new Date).getTime() + random_number);
            }
        });
 
        $.ajax({
            type: 'POST',
            url: g5_captcha_url+'/kcaptcha_mp3.php',
            cache: false,
            async: false,
            success: function(url) {
                if (url) {
                    mp3_url = url + "?t="+new Date().getTime() + random_number;
                    $("#captcha_audio").attr("src", mp3_url);
                }
            }
        });
    });
 
    $(document).on( "click", "#captcha_mp3", function(){
        $("body").css("cursor", "wait");
 
        $.ajax({
            type: 'POST',
            url: g5_captcha_url+'/kcaptcha_mp3.php',
            cache: false,
            async: false,
            success: function(url) {
                if (url) {
                    mp3_url = url + "?t="+new Date().getTime() + random_number;
                }
            }
        });
 
        var html5use = false;
        var html5audio = document.createElement("audio");
        if (html5audio.canPlayType && html5audio.canPlayType("audio/mpeg")) {
            var wav = new Audio(mp3_url);
            wav.id = "mp3_audio";
            wav.autoplay = true;
            wav.controls = false;
            wav.autobuffer = false;
            wav.loop = false;
 
            if ($("#mp3_audio").length) $("#mp3_audio").remove();
            $("#captcha_mp3").after(wav);
 
            html5use = true;
        }
 
        if (!html5use) {
            var object = '<object id="mp3_object" classid="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95" height="0" width="0" style="width:0; height:0;">';
            object += '<param name="AutoStart" value="1" />';
            object += '<param name="Volume" value="0" />';
            object += '<param name="PlayCount" value="1" />';
            object += '<param name="FileName" value="' + mp3_url + '" />';
            object += '<embed id="mp3_embed" src="' + mp3_url + '" autoplay="true" hidden="true" volume="100" type="audio/x-wav" style="display:inline;" />';
            object += '</object>';
            if ($("#mp3_object").length)
                $("#mp3_object").remove();
            $("#captcha_mp3").after(object);
        }
 
        $("body").css("cursor", "default");
        return false;
 
    }).css('cursor', 'pointer');
 
    $("#captcha_reload").trigger("click");
});
 
// 출력된 캡챠이미지의 키값과 입력한 키값이 같은지 비교한다.
function chk_captcha()
{
    var captcha_result = false;
    var captcha_key = document.getElementById('captcha_key');
    $.ajax({
        type: 'POST',
        url: g5_captcha_url+'/kcaptcha_result.php',
        data: {
            'captcha_key': captcha_key.value
        },
        cache: false,
        async: false,
        success: function(text) {
            captcha_result = text;
        }
    });
 
    if (!captcha_result) {
        alert('자동등록방지 입력 글자가 틀렸거나 입력 횟수가 넘었습니다.\n\n새로고침을 클릭하여 다시 입력해 주십시오.');
        captcha_key.select();
        captcha_key.focus();
        return false;
    }
 
    return true;
}

 

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

 

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

 

978180634_1712558797.7068.png

 

978180634_1712558779.2413.png

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 40
© SIRSOFT
현재 페이지 제일 처음으로