documentation
MBUSTER
MBUSTER API 연동
MBUSTER 적용 방법

MBUSTER 적용 방법

매크로 탐지 및 차단 기능을 위한 라이브러리 적용

WAS 서버에 동작을 위한 java, js, png, jsp 파일 적용 필요

MBUSTER 연동을 위한 파일 리스트는 다음과 같습니다.

  • Mbuster.QF.jsp
  • Mbuster.QC.jsp
  • Mbuster_T.jsp
  • MBusterAPI.java
  • captcha.js
  • fingerPrint.js
Explorer구분File 구분File 설명
WAS 서버호출javaMBusterAPI.java
WAS 서버제어jspMbuster_QC.jsp
Mbuster_QF.jsp
Mbuster_T.jsp
WAS 서버제어javascriptmbuster_meta.js
mbuster_api.js
captcha.js
fingerPrint.js
etcetc기타파일MBUSTER 관련 static 파일들

연동 방법

  • Mbuster 연동 파일들을 소스코드에 추가하여 줍니다.
  • 연동을 하고자 하는 위치에 MBusterAPI.callMBusterApiReject 함수를 호출합니다.
  • API 통신결과(매크로 확인 결과)에 대한 제어를 구현합니다.

MBUSTER API 스크립트 삽입 및 호출 예시

  1. 엠버스터 관련
<script type="text/javascript" src="${pageContext.request.contextPath}/mbuster/resource/js/mbuster_meta.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/mbuster/resource/js/mbuster_api.js"></script>
  1. 엠버스터 WEB 연동
MBUSTER_API({
    clientIP : ClientIP,
    user_login_id : user_login_id
});

MBUSTER_API() 호출 시, 요청 파라미터

필수여부Parameter설명
필수clientIp클라이언트 Ip
user_login_id로그인 사용자 아이디 (없을 경우 빈 값)
⚠️

필수 파라미터를 넘기지 않으면 API 호출이 불가능 합니다. client의 ip를 반드시 인자로 넘겨주어야 합니다.

mbuster_meta.js 파일 수정

const service_type = "http";
const macro_domain = "127.0.0.1";    // MBUSTER 호출 도메인
const macro_cookie_domain = '127.0.0.1';    // 쿠키 저장 대상 도메인 변경 (연동 대상 사이트)
const macro_port = "8180";
const g_groupName = "www.stclab.com";
 
const mbuster_info_url = {
    T : "./mbuster/Mbuster_T.jsp",    // 차단
    QC : "./mbuster/Mbuster_QC.jsp" , // Captcha
    QF : "./mbuster/Mbuster_QF.jsp"   // FingerPrint (브라우저 챌린지)
};
 
const mbmhIo = true;
Parameter설명예시
request클라이언트 요청 HttpServerletRequestHttpServerletRequest request
response클라이언트 HttpServerletResponseHttpServerletResponse response
groupNameMBUSTER 등록 도메인 그룹명mbuster.io
loginId로그인 사용자 아이디 (없을 경우 클라이언트 IP)user_id

MBUSTER API 요청

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    HttpSession session = request.getSession();
 
    String groupName = "www.stclab.com";
 
    String userId = (String) session.getAttribute("login_id");
 
    // 1. api 호출 
    String result = MBusterAPI.callMBusterApiReject(request, response, groupName, userId);
 
    // 2. api 결과 -> 제어
    String tmp[] = result.split(":");
 
    if(tmp[0].equals("E")) {
        return true;
    }
 
    else if (tmp[0].equals("F")) {
        return true;
    } else if (tmp[0].equals("T")) {
        RequestDispatcher dispatcher = request.getRequestDispatcher("/mbuster/Mbuster_T.jsp");
        dispatcher.forward(request, response);
        return false;
    } else if (tmp[0].equals("QC")) {
        request.setAttribute("clientIp", tmp[1]);
        request.setAttribute("loginId", tmp[2]);
        request.setAttribute("groupName", tmp[3]);
 
        RequestDispatcher dispatcher = request.getRequestDispatcher("/mbuster/Mbuster_QC.jsp");
        dispatcher.forward(request, response);
        return false;
    } else if (tmp[0].equals("QF")) {
        request.setAttribute("clientIp", tmp[1]);
        request.setAttribute("loginId", tmp[2]);
        request.setAttribute("groupName", tmp[3]);
 
        RequestDispatcher dispatcher = request.getRequestDispatcher("/mbuster/Mbuster_QF.jsp");
        dispatcher.forward(request, response);
        return false;
    }
 
    return true;
}
Parameter설명예시
service_typeapi 서비스 프로토콜 ( http / https)http
macro_domain엠버스터 장비 URL (Ip 혹은 도메인)mbuster.co.kr
macro_cookie_domain쿠키 저장대상 도메인 (연동 대상 사이트 주소)www.stclab.com (opens in a new tab)
macro_port엠버스터 API 서비스 포트 (8180 default)8180
g_groupNameMBUSTER 등록 도메인 그룹명www.stclab.com (opens in a new tab)

MBUSTER API 요청 시 반환 결과
Parameter : result

항목결과값
이용자"0"
통신에러"E", "F"
차단"T"
CAPTCHA"QC"
브라우저 챌린지"QF"
통신에러, 이용자인 경우 기존 페이지를 호출하고 매크로인 경우 flag에 따라 제어합니다.