kcaptcha 부분의 주민번호처럼 13자리수 오인탐지 보안관련 문의드립니다.
본문
아래와 같은 보안조취사항을 전달받았습니다.
보드는 그누보드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;
}
이렇게 변경하시면 랜덤값이 추가로 붙어서 원하시는데로 됩니다.
회원가입도 잘되는거 방금 테스트 했습니다.
!-->!-->
해결방법을 알려 주셔서 정말 감사합니다. ^^*
적용해 보도록 하겠습니다.
즐겁고 행복한 하루 되세요~
해결방법을 알려 주셔서 정말 감사합니다. ^^*
적용해 보도록 하겠습니다.
즐겁고 행복한 하루 되세요~
답변을 작성하시기 전에 로그인 해주세요.