Contents

매크로방지(MProtect)

개요

매크로방지 기능 이란?

netfunnel.js 1.5 version부터 매크로와 같이 Tool을 통한 주기적인 요청이나 여러개의 창을 띄워서 동시에 요청하는 사용자에 대한 차단 기능을 제공하고 있는데, 이것이 바로 “매크로방지 MProtect”입니다.

MProtect 기능은 사용자 브라우저에서 Javascript로 동작하기 때문에 완벽한 차단은 불가능하지만, 사용자의 지속적인 요청으로 서버에 부하가 발생할 때 부하를 다소 줄일 수 있습니다.

사용자 차단

사용자 차단은 특정 조건에 해당하는 사용자에게 일정 시간동안 “가상 대기창”을 화면에 출력하여 작업을 진행하지 못하게 하는 방법입니다.

  • “특정 조건”의 예
    • 요청 간격의 시간 표준 편차 값이 아주 작은 경우
    • 단위 시간 당 많은 요청을 하는 경우
    • 완료 요청 없이 많은 요청을 하는 경우
    NOTE

    가상 대기창은 정상 대기창의 모양과 동일합니다.

옵션

기능 사용 여부

MProtect 기능의 필요 여부에 따라 true/false로 아래 옵션을 설정하세요.

key Type 기본값 설명
NetFunnel.MP_USE Boolean true 사용여부

Global 옵션 뿐 아니라 자원 사용 요청 시에도 동적으로 설정할 수 있습니다.

NetFunnel_Action({mp_use:true},function(ev,ret){
	alert("success");
});		

가상 대기 시간

MProtect 기능으로 차단하면 사용자 화면에는 가상 대기창이 뜨고, 가상 대기창은 가상 대기 시간동안 화면에 나타납니다.

key Type 기본값 설명
NetFunnel.TS_VIRT_WAIT Number 10000 가상대기시간 (millisecond)

Global 옵션 뿐만 아니라 자원 사용 요청 시에도 동적으로 설정할 수 있습니다.

NetFunnel_Action({virt_wait:20000},function(ev,ret){
	alert("success");	
});	

표준 편차

매크로를 사용하는 사용자의 경우 요청과 요청 사이의 시간 간격이 일정합니다. 즉, 요청 간격의 시간 표준 편차가 매우 작습니다.

key Type 기본값 설명
NetFunnel.MP_DEVLIMIT Number 20 요청주기의 표준편차 제한값 (millisecond)
NetFunnel.MP_DEVCNTLIMIT Number 7 표준편차 계산을 위한 item숫자

단위 시간 당 요청량

매크로를 사용하거나 여러 개의 브라우저 창을 이용하여 서비스를 요청하는 경우 단위 시간 내에 많은 요청이 서버로 들어옵니다. 아래의 두 옵션을 이용해 단위 시간 당 일정 숫자 이상의 요청이 들어오는 경우 MProtect 기능을 동작시킬 수 있습니다.

key Type 기본값 설명
NetFunnel.MP_TIMELIMIT Number 20000 사용자의 요청을 체크하기 위한 단위 시간 (millisecond)
NetFunnel.MP_MAXREQLIMIT Number NetFunnel.MP_TIMELIMIT/1100 TIMELIMIT 시간 내에 요청가능한 최대값

완료 요청 없는 요청

자원 사용 요청과 완료 요청은 하나의 쌍으로 이루어져야 하지만 사용자의 비정상적인 접근이나 프로그램의 오류로 인해 완료 요청이 전달되지 않으면 넷퍼넬 서버의 통계 수치가 맞지 않습니다.

key Type 기본값 설명
NetFunnel.MP_REQONLYLIMIT Number 10 완료요청 없이 자원사용 요청한 횟수 제한값(횟수)