KR102362031B1 - Method for preventing macro on web service and server performing the same - Google Patents

Method for preventing macro on web service and server performing the same Download PDF

Info

Publication number
KR102362031B1
KR102362031B1 KR1020200080052A KR20200080052A KR102362031B1 KR 102362031 B1 KR102362031 B1 KR 102362031B1 KR 1020200080052 A KR1020200080052 A KR 1020200080052A KR 20200080052 A KR20200080052 A KR 20200080052A KR 102362031 B1 KR102362031 B1 KR 102362031B1
Authority
KR
South Korea
Prior art keywords
input
macro
value
user terminal
dummy
Prior art date
Application number
KR1020200080052A
Other languages
Korean (ko)
Other versions
KR20220001743A (en
Inventor
김대진
Original Assignee
(주)엔티시스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)엔티시스 filed Critical (주)엔티시스
Priority to KR1020200080052A priority Critical patent/KR102362031B1/en
Publication of KR20220001743A publication Critical patent/KR20220001743A/en
Application granted granted Critical
Publication of KR102362031B1 publication Critical patent/KR102362031B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)

Abstract

웹 서비스 상에서의 매크로 방지 방법 및 이를 수행하는 서버가 도시된다. 본 발명의 다양한 실시예 중 하나에 따른 매크로 방지 서버의 매크로 동작 방지 방법은, 사용자 단말기에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정하는 단계; 적어도 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드를 상기 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입하는 단계; 상기 복수의 입력 필드의 적어도 일부에 대해 입력 필드의 이름 및 아이디에 대한 암호화를 수행함에 있어, 상기 사용자 단말기가 상기 매크로 방지 서버에 접속할 시에 부여되는 세션 ID값 및 시드값을 기초로 하여 암호화를 수행하는 단계; 암호화가 수행된 이름 및 아이디를 상기 사용자 단말기로 전송하고, 상기 사용자 단말기로부터 암호화된 상태의 입력값을 수신하는 단계; 상기 사용자 단말기로부터 수신한 입력값을 상기 세션 ID값 및 시드값을 기초로 복호화하는 단계; 및 복호화된 입력값을 데이터베이스에 저장하는 단계를 포함할 수 있다.A method of preventing macros on a web service and a server performing the same are shown. A macro operation prevention method of a macro prevention server according to one of various embodiments of the present invention includes the steps of: randomly determining positions of a plurality of input fields existing on a service interface provided to a user terminal; generating at least one or more dummy input fields and inserting the generated dummy input fields to occupy a portion of positions where the plurality of input fields are displayed; In performing encryption on the name and ID of the input field for at least a portion of the plurality of input fields, encryption is performed based on the session ID value and the seed value provided when the user terminal accesses the macro prevention server. performing; transmitting the encrypted name and ID to the user terminal, and receiving an encrypted input value from the user terminal; decoding the input value received from the user terminal based on the session ID value and the seed value; and storing the decoded input value in a database.

Description

웹 서비스 상에서의 매크로 방지 방법 및 이를 수행하는 서버{METHOD FOR PREVENTING MACRO ON WEB SERVICE AND SERVER PERFORMING THE SAME}A method for preventing macros on web services and a server performing the same

본 발명의 다양한 실시예는 웹 서비스 상에서의 매크로 방지 방법 및 이를 수행하는 서버에 관한 것이다. Various embodiments of the present invention relate to a method for preventing macros on a web service and a server for performing the same.

인터넷이 실생활과 밀접하게 연관되면서, 오프라인에서 행해지던 각종 행위들이 온라인 상에서 가능하게 되는 경우가 많다.As the Internet is closely related to real life, various actions that were performed offline are often made possible online.

그 중 하나는 구매, 주문 또는 예약과 관련된 분야이다. 선착순 구매의 경우 웹 서비스 상에서 우선적으로 구매 신청을 완료한 특정 인원수의 사람들에게 구매 기회가 가게 되며, 특정 서비스에 대한 예약 또한 마찬가지로 웹 서비스 상에서 우선적으로 예약을 진행한 특정 인원수의 사람들에게 예약 기회가 가게 된다.One of them is related to purchasing, ordering or reservation. In the case of first-come-first-served purchase, the purchase opportunity goes to a certain number of people who have completed the purchase application on the web service preferentially. do.

웹 서비스를 통해 선착순으로 이루어지는 구매, 주문 또는 예약의 경우, 이를 원하는 사람들의 수가 많은 경우 경쟁이 치열해질 수 있다. 이 경우, 사람들은 구매, 주문 또는 예약이 오픈되는 시각에 대기하고 있다가 해당 시각이 도달하게 되면 구매, 주문 또는 예약에 필요한 정보(예를 들어, 아이디, 이름, 전화번호, 결제 정보 등)를 입력하여 구매, 주문 또는 예약을 시도하게 된다. In the case of purchases, orders, or reservations made on a first-come, first-served basis through a web service, competition may intensify if the number of people who want it is large. In this case, people wait at the time when a purchase, order or reservation is opened, and when that time arrives, information necessary for purchase, order or reservation (eg ID, name, phone number, payment information, etc.) Enter to try to buy, place an order, or make a reservation.

많은 경우에 구매, 주문 또는 예약을 진행하는 웹 서버에 과도한 부하가 발생하기도 하며, 그에 따라 사용자들은 구매, 주문 또는 예약이 완료될 때까지 반복하여 웹 페이지를 새로고침하고, 필요 정보들을 입력하여 반복적인 시도를 하게 된다.In many cases, excessive load is generated on the web server that performs purchase, order, or reservation, and accordingly, users repeatedly refresh the web page until the purchase, order or reservation is completed, and enter necessary information repeatedly. will make an attempt

보통의 사용자는 이와 같은 구매, 주문 또는 예약에 대한 반복 시도를 스스로 진행하지만, 일부 사용자들은 매크로(macro)라는 도구를 이용하여 구매, 주문 또는 예약을 수행한다. 매크로란, 특정 작업을 반복하여 자동 수행할 수 있도록 설정된 프로그램으로 구매, 주문 또는 예약에 있어서는 웹 서비스 상에서 구매, 주문 또는 예약이 성공될 때까지 반복하여 시도하는 프로그램을 의미한다.Ordinary users make repeated attempts for such purchase, order, or reservation by themselves, but some users use a tool called a macro to make a purchase, order, or reservation. A macro is a program set so that a specific task can be repeatedly and automatically performed, and in the case of purchase, order, or reservation, it means a program that repeatedly tries until the purchase, order, or reservation is successful on the web service.

구매, 주문 또는 예약과 관련하여 매크로는 크게 두 가지 방식으로 동작할 수 있는데, 첫 번째는 UI(User Interface)를 활용한 방식으로, 사용자 단말기의 화면 내에 표시되는 각종 입력창 등의 위치를 파악하여 이에 대한 선택이 매크로에 의해 수행되고 각 입력창에 대응되는 정보가 자동으로 입력되도록 하는 것이다. 즉, 첫 번째 방식은 마우스 커서 등의 입력 장치 위치를 조작하고, 키보드 등의 입력 장치를 조작하여 입력창마다 대응되는 정보가 입력되도록 하는 것이다.In relation to purchase, order, or reservation, macros can be operated in two main ways. The first is a method using a UI (User Interface), This selection is performed by a macro, and information corresponding to each input window is automatically entered. That is, in the first method, information corresponding to each input window is input by manipulating the position of an input device such as a mouse cursor and the like, and manipulating an input device such as a keyboard.

매크로 동작과 관련된 두 번째 방식은 Html(Hypertext Markup Language) 소스 코드 내의 탐색을 활용한 방식으로, 돔 셀렉터(Dom Selector)를 활용하여 각종 입력창의 위치를 확인하고 각 입력창에 대응되는 정보가 입력되도록 하는 것이다. Dom(Document Object Model)은 웹 페이지에 대한 인터페이스로, 원본 Html 문서의 계층적 객체 기반 표현 방식을 의미한다. 두번째 방식을 활용한 매크로는 각 입력창에 대응되는 돔 셀렉터를 통해 돔(Dom)의 위치를 파악하고 파악된 위치에 대응되는 정보가 입력되도록 한다.The second method related to macro operation is a method that utilizes the search within the Html (Hypertext Markup Language) source code, and uses the Dom Selector to check the positions of various input windows and to input information corresponding to each input window. will do Dom (Document Object Model) is an interface to a web page and refers to a hierarchical object-based representation of the original HTML document. The macro using the second method detects the location of the dome through the dome selector corresponding to each input window and allows information corresponding to the identified location to be input.

따라서, 웹 서비스 상에서 매크로를 방지하기 위해서는 두가지 방식의 매크로가 전부 정상적으로 동작하지 못하도록 하는 대비책이 필요한 실정이었다.Therefore, in order to prevent macros on the web service, a countermeasure was needed to prevent all macros of the two types from operating normally.

한국등록특허 제10-1837726호Korean Patent Registration No. 10-1837726

본 발명의 다양한 실시예는 서비스 인터페이스 상에서의 입력 필드 위치를 통해 동작하는 매크로의 정상 동작을 방지하는 것을 그 목적으로 한다. It is an object of various embodiments of the present invention to prevent the normal operation of a macro operating through an input field position on a service interface.

본 발명의 다양한 실시예는 서비스 인터페이스를 구현하기 위한 소스 코드의 탐색을 통해 동작하는 매크로의 정상 동작을 방지하는 것을 그 목적으로 한다.It is an object of various embodiments of the present invention to prevent the normal operation of a macro operating through a search of a source code for implementing a service interface.

본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 과제를 해결하기 위한 본 발명의 다양한 실시예 중 하나에 따르면, 매크로 방지 서버가 웹(Web) 상에서 제공되는 서비스에 대한 매크로 동작을 방지하는 방법은, 사용자 단말기에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정하는 단계; 적어도 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드를 상기 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입하는 단계; 상기 복수의 입력 필드의 적어도 일부에 대해 입력 필드의 이름 및 아이디에 대한 암호화를 수행함에 있어, 상기 사용자 단말기가 상기 매크로 방지 서버에 접속할 시에 부여되는 세션 ID값 및 시드값을 기초로 하여 암호화를 수행하는 단계; 암호화가 수행된 이름 및 아이디를 상기 사용자 단말기로 전송하고, 상기 사용자 단말기로부터 암호화된 상태의 입력값을 수신하는 단계; 상기 사용자 단말기로부터 수신한 입력값을 상기 세션 ID값 및 시드값을 기초로 복호화하는 단계; 및 복호화된 입력값을 데이터베이스에 저장하는 단계를 포함하여 구성될 수 있다.According to one of the various embodiments of the present invention for solving the above-described problem, the method for preventing the macro operation of a service provided on the web by the macro prevention server is present on the service interface provided to the user terminal. randomly determining positions of a plurality of input fields; generating at least one or more dummy input fields and inserting the generated dummy input fields to occupy a portion of positions where the plurality of input fields are displayed; In performing encryption on the name and ID of the input field for at least a portion of the plurality of input fields, encryption is performed based on the session ID value and the seed value provided when the user terminal accesses the macro prevention server. performing; transmitting the encrypted name and ID to the user terminal, and receiving an encrypted input value from the user terminal; decoding the input value received from the user terminal based on the session ID value and the seed value; and storing the decoded input value in a database.

상기 더미 입력 필드의 생성 단계는, 상기 서비스 인터페이스를 구현하기 위한 소스 코드 내부에 더미 입력 필드 생성을 위한 더미 코드를 삽입하는 단계를 더 포함할 수 있다.The generating of the dummy input field may further include inserting a dummy code for generating the dummy input field into the source code for implementing the service interface.

상기 매크로 방지 서버의 매크로 동작 방지 방법은, 상기 소스 코드 내부에 삽입되는 더미 코드의 개수가 랜덤하게 결정되는 것을 특징으로 할 수 있다.The macro operation prevention method of the macro prevention server may be characterized in that the number of dummy codes inserted into the source code is randomly determined.

상기 매크로 방지 서버의 매크로 동작 방지 방법은, 상기 더미 코드는 상기 더미 코드를 통해 생성되는 더미 입력 필드와 대응되는 입력 필드의 소스 코드와 동일한 형식으로 생성되며, 대응되는 소스 코드와 일부 식별자만이 상이하도록 생성되는 것을 특징으로 할 수 있다.In the method for preventing macro operation of the macro prevention server, the dummy code is generated in the same format as a source code of an input field corresponding to a dummy input field generated through the dummy code, and only some identifiers are different from the corresponding source code It may be characterized in that it is generated to do so.

생성된 더미 입력 필드가 상기 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입하는 단계는, 상기 생성된 더미 입력 필드가 삽입되기 이전에 해당 위치에 존재하던 입력 필드의 크기를 축소시키거나 위치를 이동시켜, 생성된 더미 입력 필드와 위치적으로 중복되는 부분이 존재하지 않도록 조절하는 단계를 더 포함할 수 있다.The inserting of the generated dummy input field so that it occupies a portion of the positions where the plurality of input fields are displayed may include reducing the size of the input field existing at the corresponding position before the generated dummy input field is inserted or positioning the input field. The method may further include adjusting so that there is no positionally overlapping part with the generated dummy input field by moving the .

상기 복수의 입력 필드 위치를 랜덤하게 결정하는 단계는, 복수의 입력 필드 간의 간격을 조절하는 단계를 더 포함할 수 있다.The step of randomly determining the positions of the plurality of input fields may further include adjusting an interval between the plurality of input fields.

상기 매크로 방지 서버의 매크로 동작 방지 방법은, 상기 사용자 단말기를 통해 시도되는 서비스 요청의 시간 대비 빈도수를 계산하고 계산된 값에 기초하여 매크로 동작 방지 기술을 적용할 사용자를 결정하는 단계를 더 포함할 수 있다.The method for preventing macro operation of the macro prevention server may further include calculating the frequency versus time of service requests attempted through the user terminal and determining a user to which the macro operation prevention technology is to be applied based on the calculated value. have.

상기 매크로 방지 서버의 매크로 동작 방지 방법은, 상기 시드값이 암호화가 수행되는 시각 정보에 기초하여 결정되는 것을 특징으로 할 수 있다.The macro operation prevention method of the macro prevention server may be characterized in that the seed value is determined based on time information at which encryption is performed.

상술한 과제를 해결하기 위한 본 발명의 다양한 실시예 중 하나에 따르면, 웹(Web) 상에서 제공되는 서비스에 대한 매크로 동작 방지를 위해 동작하는 매크로 방지 서버는 사용자 단말기에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정하는 DOM구조 랜덤화부; 적어도 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드가 상기 복수의 입력 필드가 표시하는 위치 중 일부를 차지하도록 삽입하는 더미 필드 생성부; 상기 복수의 입력 필드의 적어도 일부에 대해 입력 필드의 이름 및 아이디에 대한 암호화를 수행함에 있어, 상기 사용자 단말기가 상기 매크로 방지 서버에 접속할 시에 부여되는 세션 ID값 및 시드값을 기초로 하여 암호화를 수행하며, 암호화가 수행된 이름 및 아이디를 상기 사용자 단말기로 전송하는 입력 필드 암호화부; 상기 사용자 단말기로부터 암호화된 상태의 입력값을 수신하여, 상기 사용자 단말기로부터 수신한 입력값을 상기 세션 ID값 및 시드값을 기초로 복호화하는 입력값 복호화부; 및 복호화된 입력값을 데이터베이스 서버에 전달하는 통신부를 포함하여 구성될 수 있다.According to one of the various embodiments of the present invention for solving the above-described problems, the macro prevention server that operates to prevent macro operation for a service provided on the web exists on a service interface provided to a user terminal. a DOM structure randomizer that randomly determines positions of a plurality of input fields; a dummy field generator generating at least one or more dummy input fields and inserting the generated dummy input fields to occupy a portion of positions displayed by the plurality of input fields; In performing encryption on the name and ID of the input field for at least a portion of the plurality of input fields, encryption is performed based on the session ID value and the seed value provided when the user terminal accesses the macro prevention server. an input field encryption unit for transmitting the encrypted name and ID to the user terminal; an input value decoding unit receiving an encrypted input value from the user terminal and decoding the input value received from the user terminal based on the session ID value and the seed value; and a communication unit that transmits the decoded input value to the database server.

본 발명의 실시예에 따르면, 서비스 인터페이스 내에서 표시되는 입력 필드들의 순서, 위치 및 간격이 랜덤으로 결정되고 더미 입력 필드가 삽입됨에 따라 서비스 인터페이스 내의 입력 필드 위치를 이용한 매크로가 정상적으로 동작하지 않게 될 수 있다.According to an embodiment of the present invention, as the order, position, and interval of input fields displayed in the service interface are randomly determined and a dummy input field is inserted, a macro using the position of the input field in the service interface may not operate normally. have.

본 발명의 실시예에 따르면, 더미 필드 삽입과 더불어 소스 코드의 암호화를 통해 소스 코드 내에서의 탐색을 활용하여 동작하는 매크로가 정상적으로 동작하지 않게 될 수 있다.According to an embodiment of the present invention, a macro operating by utilizing a search in the source code through the encryption of the source code along with the insertion of the dummy field may not operate normally.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 일 실시예에 따른 매크로 방지 서버가 동작하는 환경을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 매크로 방지 서버의 구성을 개략적으로 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 매크로 방지 서버가 동작하는 방식을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 매크로 방지 서버에 의해 사용자 단말기 측으로 제공되는 인터페이스의 예시도로, 인터페이스의 입력 필드 위치 변화를 통해 매크로 동작을 방지하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 매크로 방지 서버에 의해 사용자 단말기 측으로 제공되는 인터페이스의 예시도로, 인터페이스의 입력 필드 간격 변화를 통해 매크로 동작을 방지하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 매크로 방지 서버가 서비스 인터페이스를 구현하기 위한 소스 코드 내부에 삽입하는 더미 코드에 대해 설명하기 위한 도면이다.
1 is a diagram schematically illustrating an environment in which a macro prevention server according to an embodiment of the present invention operates.
2 is a block diagram schematically showing the configuration of a macro prevention server according to an embodiment of the present invention.
3 is a flowchart illustrating a method of operating a macro prevention server according to an embodiment of the present invention.
4 is an exemplary view of an interface provided to a user terminal side by a macro prevention server according to an embodiment of the present invention, and is a diagram for explaining a method of preventing a macro operation by changing the position of an input field of the interface.
5 is an exemplary view of an interface provided to a user terminal side by a macro prevention server according to an embodiment of the present invention, and is a diagram for explaining a method of preventing a macro operation by changing an input field interval of the interface.
6 is a view for explaining a dummy code inserted into a source code for implementing a service interface by the macro prevention server according to an embodiment of the present invention.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.In the entire specification, when a part "includes" a certain element, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 매크로 방지 서버(100)가 동작하는 환경을 개략적으로 나타낸 도면이다.1 is a diagram schematically illustrating an environment in which a macro prevention server 100 operates according to an embodiment of the present invention.

도 1을 참조하면, 일반적인 웹 서비스는 도 1과 유사한 형태로 구성되어 사용자에게 서비스를 제공할 수 있다.Referring to FIG. 1 , a general web service may be configured in a form similar to that of FIG. 1 to provide a service to a user.

본 명세서 상에서는 설명의 편의를 위해 매크로 방지 서버(100)가 웹 서버와 WAS 서버의 역할을 대신하는 것과 같이 표시되었지만, 일반적인 웹 서비스 상에서는 사용자 단말기(200)가 웹 서버와 통신을 수행하고, 웹 서버는 WAS 서버와 통신을 수행하며, WAS 서버는 데이터베이스 서버(300)와 통신을 수행할 수 있다.In the present specification, for convenience of explanation, the macro prevention server 100 is displayed as replacing the roles of the web server and the WAS server, but in a general web service, the user terminal 200 communicates with the web server, and the web server performs communication with the WAS server, and the WAS server may communicate with the database server 300 .

WAS 서버란, 웹 서버에서 처리하지 못하는 동적인 처리를 수행하는 서버로, 사용자의 서비스 요청에 따라 변환되어야 하는 컨텐츠에 대한 처리를 수행하는 서버일 수 있다. The WAS server is a server that performs dynamic processing that cannot be processed by a web server, and may be a server that processes content to be converted according to a user's service request.

본 발명의 다양한 실시예들에 따르면 매크로 방지 서버(100)는 웹 서버 및 WAS 서버의 역할을 동시에 수행하며 매크로 방지 기능을 동시에 수행할 수 있으며, 이와 달리 웹 서버 및 WAS 서버와 별도로 존재하며 웹 서버 및 WAS 서버와의 통신을 통해 매크로 방지 기능을 제공할 수도 있다.According to various embodiments of the present invention, the macro prevention server 100 can simultaneously perform the roles of a web server and a WAS server and simultaneously perform a macro prevention function. And it is also possible to provide a macro prevention function through communication with the WAS server.

매크로 방지 서버(100)는 사용자들이 특정한 웹 서비스에 접속하여 다양한 주문, 예약 또는 신청 등을 수행하는 과정에서 매크로를 활용하기 어려운 형태로 서비스를 제공하는 역할을 수행할 수 있다.The macro prevention server 100 may serve to provide services in a form in which it is difficult for users to utilize macros in the process of performing various orders, reservations, or applications by accessing specific web services.

이를 위해, 매크로 방지 서버(100)는 UI(User Interface)를 활용한 방식의 매크로를 방지하기 위해, 사용자 단말기(200)에서 표시되는 웹 서비스의 인터페이스 상에서 복수의 입력 필드들의 위치가 랜덤하게 표시되도록 사용자 인터페이스를 조절할 수 있다.To this end, the macro prevention server 100 is configured such that the positions of a plurality of input fields are randomly displayed on the interface of the web service displayed on the user terminal 200 in order to prevent macros using a UI (User Interface). You can adjust the user interface.

또한, 매크로 방지 서버(100)는 돔 셀렉터(Dom Selector)를 활용한 매크로 방식을 방지하기 위해 소스 코드 상에 더미 입력 필드를 삽입하고, 입력 필드와 관련된 값들의 암호화를 수행할 수 있다.In addition, the macro prevention server 100 may insert a dummy input field into the source code to prevent a macro method using a dom selector and perform encryption of values related to the input field.

이와 같은 매크로 방지 서버(100)는 적어도 하나의 프로세서를 가지는 제어부, 통신 모듈, 저장부(예: 메모리) 등과 같은 하드웨어 또는 알고리즘 연산을 위한 소프트웨어를 포함하여 구성될 수 있다.Such a macro prevention server 100 may include hardware such as a control unit having at least one processor, a communication module, a storage unit (eg, memory), or software for an algorithm operation.

사용자 단말기(200)는 사용자에 의해 제어되며, 웹 브라우저 또는 사용자 단말기(200) 상에 설치된 컴퓨터 소프트웨어 또는 어플리케이션을 통하여 매크로 방지 서버(100)에 접속할 수 있다. 사용자 단말기(200)는 매크로 방지 서버(100)와 각종 데이터를 주고받을 수 있으며, 매크로 방지 서버(100)로부터 수신하는 데이터를 기초로 하여 사용자 단말기(200)의 화면(디스플레이부)을 통해 웹 서비스의 인터페이스를 표시할 수 있다.The user terminal 200 is controlled by the user, and it can access the macro prevention server 100 through a web browser or computer software or application installed on the user terminal 200 . The user terminal 200 may exchange various data with the macro prevention server 100, and based on the data received from the macro prevention server 100, a web service through the screen (display unit) of the user terminal 200 interface can be displayed.

사용자는 사용자 단말기(200)를 통해 각종 상품 또는 서비스에 대한 구매, 주문, 예약 등을 수행할 수 있으며, 이는 사용자 단말기(200)가 특정 웹 서비스를 제공하는 매크로 방지 서버(100)에 접속하여 상품 또는 서비스에 대한 인터페이스를 제공받고 이를 표시하면 사용자가 구매, 주문 또는 예약에 필요한 정보를 인터페이스 상에 표시되는 각종 입력 필드에 입력하여 진행될 수 있다.A user may purchase, order, or make a reservation for various products or services through the user terminal 200, which is obtained by accessing the macro prevention server 100 that the user terminal 200 provides a specific web service to. Alternatively, if an interface for a service is provided and displayed, the user may input information necessary for purchase, order, or reservation into various input fields displayed on the interface to proceed.

사용자 단말기(200)는 동작에 필요한 정보들을 저장하는 메모리, 동작에 필요한 각종 연산을 수행하는 CPU와 같은 중앙처리장치, 입출력 장치 등을 포함하여 구성될 수 있다.The user terminal 200 may include a memory for storing information necessary for operation, a central processing unit such as a CPU for performing various operations necessary for operation, an input/output device, and the like.

이러한 사용자 단말기(200)는 휴대폰, 스마트폰, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 태블릿 PC, 등과 같이 네트워크를 통하여 웹 서버와 연결될 수 있는 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있으며, 개인용 컴퓨터(예를 들어, 데스크탑 컴퓨터, 노트북 컴퓨터 등), 워크스테이션, PDA, 웹 패드 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기 중 하나일 수도 있다.The user terminal 200 is a mobile phone, a smart phone, a personal digital assistant (PDA), a portable multimedia player (PMP), a tablet PC, etc. all kinds of handheld-based that can be connected to a web server through a network. It may include a wireless communication device, and among digital devices equipped with memory means and equipped with a microprocessor, such as personal computers (eg, desktop computers, notebook computers, etc.), workstations, PDA's, web pads, etc. It could be one.

데이터베이스 서버(300)는 매크로 방지 서버(100)에서 처리된 각종 데이터를 저장하는 역할을 수행할 수 있다. 일 실시예에 따르면, 데이터베이스 서버(300)는 사용자의 아이디, 비밀번호, 성명, 주소, 전화번호 등과 같은 개인 정보를 저장할 수 있으며, 웹 서비스를 통해 제공되는 상품 또는 서비스에 대한 정보 또한 저장할 수 있다.The database server 300 may serve to store various data processed by the macro prevention server 100 . According to an embodiment, the database server 300 may store personal information such as a user's ID, password, name, address, and phone number, and may also store information on goods or services provided through a web service.

일 실시예에 따르면, 데이터베이스 서버(300)는 도 1에서와 같이 매크로 방지 서버(100)와 별도로 존재할 수도 있지만, 다른 실시예에 따르면 데이터베이스 서버(300)의 역할은 매크로 방지 서버(100) 내에 존재하는 저장부에 의해 대체될 수도 있다.According to one embodiment, the database server 300 may exist separately from the macro prevention server 100 as in FIG. 1 , but according to another embodiment, the role of the database server 300 is present in the macro prevention server 100 . It may be replaced by a storage unit.

본 발명의 일 실시예에 따르면, 매크로 방지 서버(100)가 사용자 단말기(200) 및 데이터베이스 서버(300)와 통신하기 위해서 사용하는 통신망은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 예를 들면, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network) 등 다양한 통신망으로 구현될 수 있다. 바람직하게는, 본 발명의 일 실시예에 따른 통신망은 공지의 월드와이드웹(WWW: World Wide Web) 등일 수도 있다.According to an embodiment of the present invention, the communication network used by the macro prevention server 100 to communicate with the user terminal 200 and the database server 300 may be configured regardless of its communication mode, such as wired and wireless, and , for example, a local area network (LAN), a metropolitan area network (MAN), and a wide area network (WAN) may be implemented as various communication networks. Preferably, the communication network according to an embodiment of the present invention may be a known World Wide Web (WWW) or the like.

도 2는 본 발명의 일 실시예에 따른 매크로 방지 서버(100)의 구성을 개략적으로 나타낸 블록도이다.2 is a block diagram schematically showing the configuration of the macro prevention server 100 according to an embodiment of the present invention.

도 2를 참조하면, 매크로 방지 서버(100)는 DOM구조 랜덤화부(110), 더미 필드 생성부(120), 입력 필드 암호화부(130), 입력값 복호화부(140), 매크로 방지 대상 결정부(150), 통신부(160), 저장부(170) 및 제어부(180)를 포함하여 구성될 수 있다.Referring to FIG. 2 , the macro prevention server 100 includes a DOM structure randomizer 110 , a dummy field generator 120 , an input field encryption unit 130 , an input value decryption unit 140 , and a macro prevention target determiner 150 , the communication unit 160 , the storage unit 170 , and the control unit 180 may be included.

설명의 편의를 위하여 매크로 방지 서버(100) 내에서 각각의 역할을 수행하는 주체들을 ~부 또는 ~모듈의 형태로 표시하였으나, 각각의 부분들은 매크로 방지 서버(100) 내에서 동작하는 서브 프로그램 모듈 또는 제어부(180)를 기능적으로 분류한 구성들일 수 있다. 이러한 프로그램 모듈들은 각 동작을 수행하거나, 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하는 개념이지만, 이에 제한되지는 않는다. For convenience of explanation, the subjects performing each role in the macro prevention server 100 are displayed in the form of ~ parts or ~ modules, but each part is a sub-program module operating in the macro prevention server 100 or The control unit 180 may be functionally classified. These program modules are a concept that encompasses routines, subroutines, programs, objects, components, data structures, etc. that perform respective operations or execute specific abstract data types, but are not limited thereto.

DOM구조 랜덤화부(110)는 사용자 단말기(200)에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정할 수 있다. 예를 들어, 사용자 단말기(200)에 표시되는 서비스 인터페이스 상에 주문자 성명, 휴대폰 번호, 이메일 주소 및 배송지 주소에 해당하는 입력 필드가 존재하는 경우, DOM구조 랜덤화부(110)는 각각의 입력 필드 항목에 표시되는 순서 또는 위치를 변경할 수 있다.The DOM structure randomizer 110 may randomly determine positions of a plurality of input fields existing on a service interface provided to the user terminal 200 . For example, when there are input fields corresponding to the orderer's name, mobile phone number, email address, and delivery address on the service interface displayed on the user terminal 200, the DOM structure randomization unit 110 performs each input field item. You can change the order or position displayed in .

DOM구조 랜덤화부(110)는 사용자 단말기(200)에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정함에 있어, 복수의 입력 필드 간의 간격이 랜덤으로 결정되도록 조절을 수행할 수 있다. 예를 들어, 주문자 성명, 휴대폰 번호, 이메일 주소 및 배송지 주소에 해당하는 입력 필드가 화면의 상단에서 하단으로 순차적으로 이어지는 형태로 표시되는 경우에 있어, 주문자 성명에 해당하는 입력 필드와 휴대폰 번호에 해당하는 입력 필드 간의 간격은 10 픽셀로, 휴대폰 번호에 해당하는 입력 필드와 이메일 주소에 해당하는 입력 필드 간의 간격은 20 픽셀로 결정되는 식으로 간격 조절이 수행될 수 있다.When the DOM structure randomization unit 110 randomly determines the positions of a plurality of input fields existing on the service interface provided to the user terminal 200, the control may be performed so that the intervals between the plurality of input fields are randomly determined. have. For example, when the input fields corresponding to the orderer's name, mobile phone number, e-mail address, and delivery address are displayed sequentially from the top to the bottom of the screen, the input field corresponding to the name of the orderer and the mobile phone number Spacing may be adjusted in such a way that the interval between the input fields is determined to be 10 pixels, the interval between the input field corresponding to the mobile phone number and the input field corresponding to the e-mail address is determined to be 20 pixels.

DOM구조 랜덤화부(110)는 후술될 더미 필드 생성부(120)에 의해 생성되는 더미 입력 필드가 웹 서비스를 위한 인터페이스 상에서 어느 부분에 위치할지를 결정할 수도 있다.The DOM structure randomizer 110 may determine in which part the dummy input field generated by the dummy field generator 120, which will be described later, is located on the interface for the web service.

더미 필드 생성부(120)는 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드를, 더미 입력 필드가 존재하지 않는 상태의 인터페이스 상에 존재하는 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입할 수 있다. The dummy field generator 120 generates one or more dummy input fields, and uses the generated dummy input fields to occupy a portion of positions where a plurality of input fields existing on an interface in which the dummy input fields do not exist are displayed. can be inserted.

일 실시예에 따르면, 더미 필드가 삽입되는 위치는 더미 필드 생성부(120)에 의해 결정될 수도 있지만, 전술한 바와 같이 DOM구조 랜덤화부(110)에 의해 결정될 수도 있다.According to an embodiment, the position at which the dummy field is inserted may be determined by the dummy field generator 120 , or may be determined by the DOM structure randomizer 110 as described above.

생성된 더미 입력 필드가 다른 입력 필드가 표시되는 위치 중 일부를 차지하게 되는 경우, 더미 필드 생성부(120)는 생성된 더미 입력 필드가 삽입되기 이전에 해당 위치에 존재하던 입력 필드를 축소시키거나 해당 위치에 존재하던 입력 필드를 이동시켜, 생성된 더미 입력 필드와 위치적으로 중복되는 부분이 존재하지 않도록 조절을 수행할 수 있다.When the generated dummy input field occupies a portion of the positions where other input fields are displayed, the dummy field generator 120 reduces or reduces the input field existing in the corresponding position before the generated dummy input field is inserted. By moving the input field existing in the corresponding position, the adjustment may be performed so that there is no positionally overlapping part with the generated dummy input field.

더미 필드 생성부(120)는 더미 입력 필드를 생성하기 위해, 서비스 인터페이스를 구현하기 위한 소스 코드 내부에 더미 입력 필드 생성을 위한 더미 코드를 삽입할 수 있다. In order to generate the dummy input field, the dummy field generator 120 may insert a dummy code for generating the dummy input field into the source code for implementing the service interface.

삽입된 더미 코드는 더미 입력 필드의 각종 속성을 정의할 수 있다. 일 예로, html로 작성된 더미 코드는 이름(name), 아이디(id), 클래스(class) 등의 속성들을 정의하는 형식으로 생성될 수 있다.The inserted dummy code may define various properties of the dummy input field. For example, the dummy code written in html may be generated in a format defining properties such as name, ID, and class.

생성되는 더미 코드는 해당 더미 코드를 통해 생성되는 더미 입력 필드와 대응되는 입력 필드의 소스 코드와 동일한 형식으로 생성될 수 있으며, 대응되는 소스 코드와 일부 식별자만이 상이하도록 생성될 수 있다. 예를 들어, 더미 코드는 이와 대응되는 소스 코드와 이름(name)에 해당하는 식별자만이 상이하고 아이디(id) 또는 클래스(class) 및 기타 식별자들은 동일하도록 생성될 수 있다.The generated dummy code may be generated in the same format as the source code of the input field corresponding to the dummy input field generated through the corresponding dummy code, and may be generated such that only some identifiers are different from the corresponding source code. For example, the dummy code may be generated such that only the identifier corresponding to the name is different from the corresponding source code, and the ID or class and other identifiers are the same.

일 실시예에 따르면, 더미 필드 생성부(120)는 서비스 인터페이스를 구현하기 위한 소스 코드 내부에 삽입되는 더미 코드의 개수를 랜덤하게 결정할 수 있다. 다만, 사용자 단말기(200)에 표시되는 서비스 인터페이스의 크기에는 제약이 있으므로, 더미 필드 생성부(120)는 한정된 숫자 내에서 더미 코드의 개수가 랜덤하게 결정되도록 설정할 수도 있다. 예를 들어, 더미 필드 생성부(120)는 생성되는 더미 코드의 개수가 3개를 초과하지 않도록 최대 더미 코드 생성 개수를 제한할 수 있다.According to an embodiment, the dummy field generator 120 may randomly determine the number of dummy codes inserted into the source code for implementing the service interface. However, since the size of the service interface displayed on the user terminal 200 is limited, the dummy field generator 120 may set the number of dummy codes to be randomly determined within a limited number. For example, the dummy field generator 120 may limit the maximum number of dummy codes to be generated so that the number of generated dummy codes does not exceed three.

입력 필드 암호화부(130)는 사용자 단말기(200)에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 중 적어도 일부에 대해 입력 필드의 속성 중 이름(name) 및 아이디(id) 값에 대한 암호화를 수행할 수 있다.The input field encryption unit 130 encrypts the name (name) and ID (id) values among the properties of the input field for at least some of the plurality of input fields existing on the service interface provided to the user terminal 200 . can be done

입력 필드 암호화부(130)의 암호화 동작은 특정한 사용자 단말기(200)가 매크로 방지 서버(100)에 접속할 때에 부여되는 세션 ID값 및 시드값을 기초로 하여 수행될 수 있다. 즉, 세션 ID값 및 시드값은 암호화 및 복호화에 사용되는 키(key) 값으로 활용될 수 있다. 시드값은 다양한 방식으로 설정될 수 있으며 일 실시예에 따르면 암호화가 수행되는 시각 정보에 기초하여 결정될 수도 있다.The encryption operation of the input field encryption unit 130 may be performed based on a session ID value and a seed value that are given when a specific user terminal 200 accesses the macro prevention server 100 . That is, the session ID value and the seed value may be utilized as a key value used for encryption and decryption. The seed value may be set in various ways, and according to an embodiment, may be determined based on time information on which encryption is performed.

입력 필드 암호화부(130)는 암호화가 수행된 이름 및 아이디를 사용자 단말기(200)로 전송할 수 있다.The input field encryption unit 130 may transmit the encrypted name and ID to the user terminal 200 .

입력값 복호화부(140)는 사용자 단말기(200)로부터, 사용자가 각종 입력 필드에 입력한 입력값을 암호화된 상태로 수신할 수 있다. 사용자 단말기(200)는 매크로 방지 서버(100)의 입력 필드 암호화부(130)가 암호화를 수행하는 방식과 동일한 방식으로, 사용자가 웹 서비스의 인터페이스 상에 존재하는 복수의 입력 필드에 입력하는 입력값 각각에 대한 암호화를 수행할 수 있으며, 입력 항목의 정보에 대한 암호화 또한 추가적으로 수행할 수 있다.The input value decoding unit 140 may receive, from the user terminal 200, input values input by the user into various input fields in an encrypted state. The user terminal 200 is an input value input by the user into a plurality of input fields existing on the interface of the web service in the same manner as the method in which the input field encryption unit 130 of the macro prevention server 100 performs encryption. Encryption may be performed for each, and encryption of information of an input item may also be additionally performed.

입력값 복호화부(140)는 사용자 단말기(200)로부터 수신한 입력값을 암호화시에 활용했던 세션 ID값 및 시드값을 통해 복호화할 수 있다.The input value decryption unit 140 may decrypt the input value received from the user terminal 200 through the session ID value and the seed value used during encryption.

일 실시예에 따르면, 입력값 복호화부(140)는 복호화된 입력값과 해당 입력값이 속하는 입력 필드의 종류를 비교하여, 복호화된 입력값이 대응되는 입력 필드에 정상적으로 배치되었는지 여부를 확인할 수 있다.According to an embodiment, the input value decoding unit 140 compares the decoded input value with the type of the input field to which the corresponding input value belongs, and confirms whether the decoded input value is normally placed in the corresponding input field. .

입력값 복호화부(140)는 복호화된 입력값을 데이터베이스 상에 저장할 수 있으며, 일 실시예에 따르면 이는 입력값을 외부의 데이터베이스 서버(300)에 전송함으로써 이루어질 수 있다.The input value decoding unit 140 may store the decoded input value in a database, and according to an embodiment, this may be accomplished by transmitting the input value to the external database server 300 .

일 실시예에 따르면, 입력값 복호화부(140)는 복호화된 입력값과 해당 입력값이 속하는 입력 필드의 종류를 비교하여, 복호화된 입력값이 대응되는 입력 필드에 정상적으로 배치되었는지를 확인한 후에 복호화된 입력값을 데이터베이스 상에 저장할 수 있다.According to an embodiment, the input value decoding unit 140 compares the decoded input value with the type of the input field to which the corresponding input value belongs, and confirms whether the decoded input value is normally placed in the corresponding input field. Input values can be stored in a database.

예를 들어, 복호화된 입력값이 11자리의 숫자로 이루어진 경우 이는 전화번호에 해당되는데 이와 같은 입력값이 주소 또는 주문자 성명에 배치된 경우 이와 같은 서비스 요청 시도는 비정상적인 요청이라고 판단되어 매크로 방지 서버(100) 상에서 요청이 거부되고 입력값이 데이터베이스 상에 저장되지 않을 수 있다.For example, if the decoded input value consists of 11 digits, it corresponds to a phone number. 100), the request may be rejected and the input value may not be stored in the database.

매크로 방지 대상 결정부(150)는 사용자 단말기(200)를 통해 시도되는 서비스 요청의 시간 대비 빈도수를 계산하고, 계산된 값에 기초하여 매크로 동작 방지 기술을 적용할 사용자를 결정할 수 있다. The macro prevention target determiner 150 may calculate the frequency versus time of service requests attempted through the user terminal 200 , and determine a user to which the macro operation prevention technology is to be applied based on the calculated value.

즉, 사용자가 웹 서비스를 통해 특정 상품 또는 서비스에 대한 구매, 주문 또는 예약을 수행함에 있어 매크로를 통해 반복적인 서비스 요청을 진행하는 경우에만 매크로 동작 방지 기술이 적용되도록 설정될 수 있다.That is, when a user purchases, orders, or makes a reservation for a specific product or service through the web service, the macro operation prevention technology may be set to be applied only when the user repeatedly requests a service through the macro.

이와 같은 매크로 방지 대상 결정부(150)의 동작에 의해, 매크로를 활용하지 않고 정상적으로 웹 서비스를 이용하는 사용자는 인터페이스 변경으로 인한 불편을 겪지 않을 수 있게 된다.Due to the operation of the macro prevention target determining unit 150 , a user who normally uses a web service without using a macro may not suffer inconvenience due to an interface change.

통신부(160)는 매크로 방지 서버(100)가 사용자 단말기(200) 및 데이터베이스 서버(300)와의 통신을 수행할 수 있도록 한다. 통신부(160)가 통신을 수행하기 위해서 사용하는 통신망은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 예를 들면, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network) 등 다양한 통신망으로 구현될 수 있다.The communication unit 160 enables the macro prevention server 100 to communicate with the user terminal 200 and the database server 300 . The communication network used by the communication unit 160 to perform communication may be configured regardless of its communication mode, such as wired and wireless, for example, a local area network (LAN), a metropolitan area network (MAN). It may be implemented in various communication networks, such as an area network) and a wide area network (WAN).

통신부(160)는 입력 필드 암호화부(130) 및 입력값 복호화부(140)의 설명에서 전술된 통신 기능을 실제로 구현하는 역할을 수행할 수 있다. The communication unit 160 may perform a role of actually implementing the communication functions described above in the description of the input field encryption unit 130 and the input value decoding unit 140 .

저장부(170)는 매크로 방지 서버(100)의 각종 구성부 내에서 수집되고, 생성되고, 가공되는 정보들을 저장하는 역할을 수행한다. 즉, 저장부(170)에는 웹 서비스의 운용을 위해서 필요한 웹 페이지의 인터페이스 관련 정보, 제공되는 상품 또는 서비스에 대한 정보 등이 저장될 수 있다. 이와 같은 정보들은 데이터베이스 서버(300)에 별도로 저장될 수도 있지만 그 일부가 저장부(170) 내에 저장될 수도 있다. 이러한 저장부(170)는 예를 들어, 메모리(memory), 캐시(cash), 버퍼(buffer) 등을 포함할 수 있으며, 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.The storage unit 170 serves to store information that is collected, generated, and processed in various components of the macro prevention server 100 . That is, the storage unit 170 may store interface-related information of a web page necessary for the operation of a web service, information on a product or service provided, and the like. Such information may be separately stored in the database server 300 , but a part thereof may be stored in the storage unit 170 . The storage unit 170 may include, for example, a memory, a cache, a buffer, and the like, and may be composed of software, firmware, hardware, or a combination of at least two or more thereof.

제어부(180)는 DOM구조 랜덤화부(110), 더미 필드 생성부(120), 입력 필드 암호화부(130), 입력값 복호화부(140), 매크로 방지 대상 결정부(150), 통신부(160) 및 저장부(170) 간의 데이터 흐름을 제어하는 기능을 수행할 수 있다. 즉, 본 발명의 일 실시예에 따른 제어부(180)는 DOM구조 랜덤화부(110), 더미 필드 생성부(120), 입력 필드 암호화부(130), 입력값 복호화부(140), 매크로 방지 대상 결정부(150), 통신부(160) 및 저장부(170)에서 각각 고유한 기능을 수행하도록 제어하고 지원할 수 있다.The control unit 180 includes a DOM structure randomization unit 110 , a dummy field generation unit 120 , an input field encryption unit 130 , an input value decoding unit 140 , a macro prevention target determination unit 150 , and a communication unit 160 . and a function of controlling data flow between the storage unit 170 . That is, the control unit 180 according to an embodiment of the present invention includes a DOM structure randomizer 110 , a dummy field generator 120 , an input field encryption unit 130 , an input value decryption unit 140 , and a macro prevention target. The determination unit 150 , the communication unit 160 , and the storage unit 170 may control and support to perform their own functions, respectively.

도 2에서 DOM구조 랜덤화부(110), 더미 필드 생성부(120), 입력 필드 암호화부(130), 입력값 복호화부(140), 매크로 방지 대상 결정부(150) 및 통신부(160)는 제어부(180)를 기능적으로 분류한 구성이므로 하나의 제어부(180)로서 통합되어 구성될 수도 있다.In FIG. 2 , the DOM structure randomization unit 110 , the dummy field generation unit 120 , the input field encryption unit 130 , the input value decoding unit 140 , the macro prevention target determination unit 150 , and the communication unit 160 are control units. Since 180 is functionally classified, it may be integrated as one control unit 180 .

도 3은 본 발명의 일 실시예에 따른 매크로 방지 서버(100)가 동작하는 방식을 설명하기 위한 흐름도이다.3 is a flowchart for explaining how the macro prevention server 100 operates according to an embodiment of the present invention.

도 3의 각 단계들은 적어도 일부가 생략될 수 있으며 상호 순서가 변경되어 수행될 수도 있다.At least some of the steps of FIG. 3 may be omitted and may be performed by changing the mutual order.

도 3을 참조하면, 매크로 방지 서버(100)는 사용자 단말기(200)로부터 웹 서비스에 대한 요청을 수신할 수 있다(S310). 웹 서비스에 대한 요청은 전술한 바와 같이 특정 상품 또는 서비스에 대한 구매, 주문, 예약 등의 요청을 포함할 수 있다.Referring to FIG. 3 , the macro prevention server 100 may receive a request for a web service from the user terminal 200 ( S310 ). As described above, the request for the web service may include a request for purchase, order, reservation, etc. for a specific product or service.

매크로 방지 서버(100)는 사용자 단말기(200)로부터 웹 서비스에 대한 요청을 수신받은 이후, 사용자 단말기(200)로 웹 서비스를 위한 웹 페이지 정보를 제공할 수 있다. 웹 페이지에는 사용자를 위한 다양한 인터페이스가 포함될 수 있으며 일 실시예에 따르면 이와 같은 웹 페이지의 인터페이스는 html을 통해 구현될 수 있다.After receiving the request for the web service from the user terminal 200 , the macro prevention server 100 may provide web page information for the web service to the user terminal 200 . The web page may include various interfaces for users, and according to an embodiment, the interface of the web page may be implemented through html.

매크로 방지 서버(100)는 사용자 단말기(200)에 제공되는 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정할 수 있다(S320). 사용자 단말기(200)에 제공되는 인터페이스 중, 상품 또는 서비스의 구매, 주문, 예약 등의 요청을 위해 제공되는 인터페이스 상에는 사용자에 의해 입력되어야 하는 복수의 입력 필드가 존재할 수 있다. 예를 들어, 특정 서비스를 예약하기 위한 인터페이스에는 예약자 성명, 전화번호, 예약 희망 시간 등의 입력을 위한 입력 필드들이 존재할 수 있으며, 사용자는 각각의 입력 필드에 필요한 정보를 입력함으로써 웹 서비스를 통해 특정 서비스의 예약을 진행할 수 있다.The macro prevention server 100 may randomly determine the positions of a plurality of input fields existing on the interface provided to the user terminal 200 (S320). Among the interfaces provided to the user terminal 200 , a plurality of input fields to be input by a user may exist on an interface provided for a request for purchase, order, reservation, etc. of a product or service. For example, in the interface for reserving a specific service, there may be input fields for inputting the name of the reservationer, phone number, desired reservation time, etc. You can make a reservation for the service.

매크로 방지 서버(100)는 더미 입력 필드를 생성하여 생성된 더미 입력 필드가 기존 입력 필드 위치의 일부를 차지하도록 삽입할 수 있다(S330). 이 경우, 기존 입력 필드는 더미 입력 필드의 삽입에 따라 축소되거나 위치가 이동되어 더미 입력 필드와 위치적으로 중복되지 않게 조절될 수 있다.The macro prevention server 100 may generate a dummy input field and insert it so that the generated dummy input field occupies a part of the position of the existing input field (S330). In this case, the existing input field may be reduced or moved according to the insertion of the dummy input field so as not to overlap the dummy input field in terms of location.

이와 같은 더미 입력 필드의 생성은 웹 서비스를 제공하기 위한 인터페이스를 구현하는 html 소스 코드 내에 더미 코드를 삽입함으로써 이루어질 수도 있다.The generation of such a dummy input field may be accomplished by inserting a dummy code into an html source code that implements an interface for providing a web service.

매크로 방지 서버(100)는 사용자 단말기(200)가 매크로 방지 서버(100)에 접속할 때에 부여되는 세션 ID값과, 임의의 방식으로 결정되는 시드값을 기초로 하여 입력 필드의 이름(name) 및 아이디(id) 속성에 대한 암호화를 수행할 수 있다(S340). 일 실시예에 따르면 시드값은 서비스 요청이 수행되는 시각 정보에 따라 결정될 수 있다.The macro prevention server 100 is based on the session ID value given when the user terminal 200 accesses the macro prevention server 100 and the seed value determined in an arbitrary manner, the name and ID of the input field Encryption may be performed on the (id) attribute (S340). According to an embodiment, the seed value may be determined according to time information at which a service request is performed.

암호화가 완료된 이후, 매크로 방지 서버(100)는 사용자 단말기(200) 상으로 생성된 인터페이스 정보를 전송할 수 있다(S350). 이와 같은 단계는 매크로 방지 서버(100)가 html 방식의 소스 코드를 사용자 단말기(200)에 전송하는 방식으로 이루어질 수 있으며, 이 경우 사용자 단말기(200)는 수신한 소스 코드를 통해 인터페이스를 생성하여 디스플레이부를 통해 표시할 수 있다.After the encryption is completed, the macro prevention server 100 may transmit the generated interface information to the user terminal 200 (S350). Such a step may be performed in such a way that the macro prevention server 100 transmits the source code of the html method to the user terminal 200, in this case, the user terminal 200 generates an interface through the received source code and displays it It can be expressed through wealth.

사용자 단말기(200) 상에서는 암호화가 수행된 항목들에 대한 복호화가 이루어질 수 있으며, 복호화는 매크로 방지 서버(100)에서 암호화에 활용되었던 세션 ID값 및 시드값을 활용함으로써 수행될 수 있다.Encrypted items may be decrypted on the user terminal 200 , and decryption may be performed by utilizing the session ID value and seed value used for encryption in the macro prevention server 100 .

이후, 사용자는 사용자 단말기(200)를 통해 확인한 인터페이스 상에 존재하는 복수의 입력 필드에 각각 대응되는 정보를 입력할 수 있으며, 사용자 단말기(200) 상에서는 사용자가 입력 필드에 입력한 입력값과, 해당 입력값이 어떠한 항목에 대해 입력된 것인지에 대한 정보의 암호화가 수행될 수 있다. 이와 같은 암호화는 매크로 방지 서버(100)에서 진행되었던 암호화 방식과 동일하게 진행될 수 있다.Thereafter, the user may input information corresponding to a plurality of input fields present on the interface confirmed through the user terminal 200 , and on the user terminal 200 , the input value input by the user into the input field and the corresponding Encryption of information on which item the input value is input may be performed. Such encryption may be performed in the same manner as the encryption method performed in the macro prevention server 100 .

사용자 단말기(200)는 암호화된 상탱의 입력값을 매크로 방지 서버(100)로 전송하고, 그에 따라 매크로 방지 서버(100)는 암호화된 상태의 입력값을 수신할 수 있다(S360). 매크로 방지 서버(100)는 수신한 입력값을 세션 ID값 및 시드값을 활용하여 복호화할 수 있으며(S370), 복호화된 입력값을 데이터베이스 서버(300)로 전송할 수 있다(S380).The user terminal 200 transmits the encrypted input value to the macro prevention server 100, and accordingly, the macro prevention server 100 may receive the encrypted input value (S360). The macro prevention server 100 may decode the received input value by using the session ID value and the seed value (S370), and may transmit the decoded input value to the database server 300 (S380).

매크로 방지 서버(100)는 복호화된 입력값을 S380 단계를 통해 데이터베이스 서버(300)에 전송하기 전에, 복호화된 입력값과 해당 입력값이 속하는 입력 필드의 종류 정보를 비교하여, 복호화된 입력값이 대응되는 입력 필드에 정상적으로 배치되었는지를 확인할 수 있으며, 주소값이 전화 번호에 해당하는 입력 필드에 배치되는 것과 같이 입력값이 정확히 배치되지 않은 경우 이에 대한 오류 처리를 진행하고 해당 입력값은 데이터베이스 서버(300)에 저장하지 않을 수 있다.Before transmitting the decoded input value to the database server 300 through step S380, the macro prevention server 100 compares the decoded input value with information on the type of the input field to which the input value belongs, so that the decoded input value is You can check whether the input value is properly placed in the corresponding input field, and if the input value is not correctly placed, such as the address value being placed in the input field corresponding to the phone number, error processing is processed and the input value is stored in the database server ( 300) may not be stored.

도 4는 본 발명의 일 실시예에 따른 매크로 방지 서버(100)에 의해 사용자 단말기(200) 측으로 제공되는 인터페이스의 예시도로, 인터페이스의 입력 필드 위치 변화를 통해 매크로 동작을 방지하는 방법을 설명하기 위한 도면이다.4 is an exemplary view of an interface provided to the user terminal 200 side by the macro prevention server 100 according to an embodiment of the present invention. It is a drawing.

도 4의 (a)를 참조하면, 사용자가 특정 상품 또는 서비스에 대한 주문을 수행할 수 있는 인터페이스의 기본 형태가 표시되어 있다.Referring to FIG. 4A , a basic form of an interface through which a user can place an order for a specific product or service is displayed.

매크로 방지 서버(100)는 도 4의 (a)와 같은 형태의 서비스 인터페이스를 사용자 단말기(200)에 제공할 수도 있지만, 입력 필드 위치를 랜덤하게 결정하여 변경함으로써 도 4의 (b)와 같은 형태의 서비스 인터페이스를 사용자 단말기(200)에 제공할 수도 있다.The macro prevention server 100 may provide the user terminal 200 with a service interface of the form as shown in FIG. It is also possible to provide a service interface of the user terminal 200 .

도 4의 (a)와 (b)를 비교하여 보면, '주문자'에 해당하는 입력 필드와 '휴대폰번호'에 해당하는 입력 필드의 위치가 서로 전환된 것을 확인할 수 있다.Comparing (a) and (b) of FIG. 4 , it can be seen that the positions of the input field corresponding to 'orderer' and the input field corresponding to 'mobile phone number' are switched.

매크로 방지 서버(100)는 하나 이상의 더머 입력 필드를 생성하고 생성된 더미 입력 필드가 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입할 수 있다. 이는 도 4의 (c)를 통해서 확인할 수 있는데, '주문자'에 해당하는 입력필드가 도 4의 (a) 및 (b)에서와는 달리 복수개로 구성된 것을 확인할 수 있다. 도 4의 (c)에서는 '주문자'에 해당하는 입력 필드가 3개로 구성되어 있는데 가장 좌측과 가장 우측에 위치한 상대적으로 짧은 길이의 입력 필드는 더미 입력 필드에 해당하고, 중간에 위치한 입력 필드만이 실제로 사용자가 정보를 입력할 수 있는 입력 필드에 해당할 수 있다.The macro prevention server 100 may generate one or more dummy input fields and insert the generated dummy input fields to occupy a portion of positions where a plurality of input fields are displayed. This can be confirmed through (c) of FIG. 4 , and it can be seen that the input field corresponding to 'orderer' is configured in plurality, unlike in FIGS. 4 (a) and (b). In FIG. 4(c) , there are three input fields corresponding to 'orderer'. The relatively short input fields located at the left and right sides correspond to the dummy input fields, and only the input field located in the middle It can actually correspond to an input field where the user can enter information.

일 실시예에 따르면, 실제로 사용되는 입력 필드와 더미 입력 필드는 크기의 차이, 색상의 차이로 구분될 수도 있으며 실제로 사용되는 입력 필드에 표시가 될 수도 있다. According to an embodiment, the actually used input field and the dummy input field may be classified by a difference in size and color, or may be displayed in an actually used input field.

사용자가 더미 입력 필드에 정보를 입력하거나, 매크로에 의해서 더미 입력 필드에 정보가 입력되더라도 이는 사용자의 서비스 이용에 있어 정상적으로 활용되지 않을 수 있다.Even if the user inputs information into the dummy input field or information is input into the dummy input field by a macro, this may not be normally utilized in the user's service use.

도 4의 (c)에서는 두 개의 더미 입력 필드가 실제 입력 필드의 좌우에 배치되는 것으로 도시되었으나, 더미 입력 필드의 개수 및 위치는 랜덤으로 결정될 수 있다.Although two dummy input fields are shown to be disposed on the left and right of the actual input field in FIG. 4C , the number and positions of the dummy input fields may be randomly determined.

도 5는 본 발명의 일 실시예에 따른 매크로 방지 서버(100)에 의해 사용자 단말기(200) 측으로 제공되는 인터페이스의 예시도로, 인터페이스의 입력 필드 간격 변화를 통해 매크로 동작을 방지하는 방법을 설명하기 위한 도면이다.5 is an exemplary view of an interface provided to the user terminal 200 by the macro prevention server 100 according to an embodiment of the present invention. It is a drawing.

도 5의 (a)를 참조하면, 사용자가 특정 상품 또는 서비스에 대한 주문을 수행할 수 있는 인터페이스의 기본 형태가 표시되어 있다.Referring to FIG. 5A , a basic form of an interface through which a user can place an order for a specific product or service is displayed.

매크로 방지 서버(100)는 도 5의 (a)와 같은 형태의 서비스 인터페이스를 사용자 단말기(200)에 제공할 수도 있지만, 입력 필드 간의 간격을 랜덤하게 결정하여 변경함으로써 도 5의 (b)와 같은 형태의 서비스 인터페이스를 사용자 단말기(200)에 제공할 수도 있다.The macro prevention server 100 may provide the user terminal 200 with a service interface of the form as shown in (a) of FIG. A service interface in the form of may be provided to the user terminal 200 .

도 5의 (a)와 (b)를 비교하여 보면, '주문자'에 해당하는 입력 필드와 '휴대폰번호'에 해당하는 입력필드 간의 간격이 (b)에서는 (a)에서 보다 큰 폭으로 이격되어 있는 것을 확인할 수 있다.Comparing (a) and (b) of FIG. 5, the interval between the input field corresponding to 'orderer' and the input field corresponding to 'mobile phone number' is larger in (b) than in (a). can confirm that there is

이와 같이, 매크로 방지 서버(100)는 도 4를 통해 전술된 것과 같이 입력 필드 간의 순서, 위치를 변경시킬 뿐 아니라 복수의 입력 필드 간의 간격 또한 변경시킴으로써 UI를 활용한 매크로의 동작을 방지할 수 있다.In this way, the macro prevention server 100 can prevent the operation of the macro using the UI by changing the order and position between the input fields as well as the spacing between the plurality of input fields as described above with reference to FIG. 4 . .

도 6은 본 발명의 일 실시예에 따른 매크로 방지 서버(100)가 서비스 인터페이스를 구현하기 위한 소스 코드 내부에 삽입하는 더미 코드에 대해 설명하기 위한 도면이다.6 is a view for explaining a dummy code inserted into the source code for implementing the service interface by the macro prevention server 100 according to an embodiment of the present invention.

도 6을 참조하면, 도 4 및 도 5를 통해 도시된 인터페이스 상의 '주문자' 항목에 대한 입력 필드에 대응되는 소스 코드가 표시되어 있다.Referring to FIG. 6 , a source code corresponding to an input field for an 'orderer' item on the interface shown in FIGS. 4 and 5 is displayed.

상세하게는, 도 6에 표시된 소스 코드는 도 4의 (c)에 관한 소스 코드이며, 소스 코드 중 붉은 색으로 표시된 부분은 더미 입력 필드 생성을 위한 더미 코드 부분이다.In detail, the source code shown in FIG. 6 is the source code of FIG. 4C , and the red part of the source code is a dummy code part for generating a dummy input field.

도 6에서는 3개의 더미 코드가 표시되어 있으며, 표시된 더미 코드들은 더미 코드를 통해 생성되는 더미 입력 필드와 대응되는 입력 필드의 소스 코드와 동일한 형식으로 생성된 것을 확인할 수 있다. 또한, 더미 코드는 이와 대응되는 소스 코드와 일부 식별자만이 상이하도록 생성된 것을 확인할 수 있다. 도 6에서는 name에 해당하는 식별자만이 상이하게 설정되고 나머지 식별자들은 동일하게 설정된 것을 확인할 수 있다.In FIG. 6 , three dummy codes are displayed, and it can be seen that the displayed dummy codes are generated in the same format as a source code of an input field corresponding to a dummy input field generated through the dummy code. Also, it can be confirmed that the dummy code is generated so that only some identifiers are different from the corresponding source code. In FIG. 6 , it can be seen that only the identifier corresponding to the name is set differently and the remaining identifiers are set the same.

일 실시예에 따르면, 더미 코드 중 적어도 일부는 사용자 인터페이스 상에서는 표시되지 않는 형태로 삽입될 수 있으며, 이 경우 더미 코드는 소크 코드 상에는 삽입되지만 사용자 인터페이스 상에는 이에 대응되는 더미 입력 필드가 표시되지 않을 수 있다.According to an embodiment, at least a portion of the dummy code may be inserted in a form that is not displayed on the user interface. In this case, the dummy code is inserted on the soak code, but a corresponding dummy input field may not be displayed on the user interface. .

이와 같이, 본 발명의 다양한 실시예들에 따르면 웹 서비스를 제공하는 인터페이스의 외관적 변화를 통해 UI를 활용한 매크로의 동작을 방지할 수 있으며, html 소스 코드 내에서의 돔 셀렉터를 활용한 매크로의 경우에는 더미 코드들의 삽입과 암호화를 통해 매크로의 동작을 방지할 수 있다.As described above, according to various embodiments of the present invention, it is possible to prevent the operation of the macro using the UI through the external change of the interface that provides the web service, and the macro using the dome selector in the html source code. In this case, the operation of the macro can be prevented through the insertion and encryption of dummy codes.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of the method or algorithm described in relation to the embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. In the above, embodiments of the present invention have been described with reference to the accompanying drawings, but those of ordinary skill in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing the technical spirit or essential features thereof. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

100: 매크로 방지 서버
200: 사용자 단말기
300: 데이터베이스 서버
100: anti-macro server
200: user terminal
300: database server

Claims (10)

매크로 방지 서버가 웹(Web) 상에서 제공되는 서비스에 대한 매크로 동작을 방지하는 방법에 있어서,
사용자 단말기에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정하는 단계;
적어도 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드를 상기 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입하는 단계;
상기 복수의 입력 필드의 적어도 일부에 대해 입력 필드의 이름 및 아이디에 대한 암호화를 수행함에 있어, 상기 사용자 단말기가 상기 매크로 방지 서버에 접속할 시에 부여되는 세션 ID값 및 시드값을 기초로 하여 암호화를 수행하는 단계;
암호화가 수행된 이름 및 아이디를 상기 사용자 단말기로 전송하고, 상기 사용자 단말기로부터 암호화된 상태의 입력값을 수신하는 단계;
상기 사용자 단말기로부터 수신한 입력값을 상기 세션 ID값 및 시드값을 기초로 복호화하는 단계; 및
복호화된 입력값을 데이터베이스에 저장하는 단계를 포함하고,
생성된 더미 입력 필드가 상기 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입하는 단계는,
상기 생성된 더미 입력 필드가 삽입되기 이전에 해당 위치에 존재하던 입력 필드의 크기를 축소시키거나 위치를 이동시켜, 생성된 더미 입력 필드와 위치적으로 중복되는 부분이 존재하지 않도록 조절하는 단계를 더 포함하는, 매크로 방지 서버의 매크로 동작 방지 방법.
In the method of preventing macro action for a service provided on the web by a macro prevention server,
randomly determining positions of a plurality of input fields existing on a service interface provided to a user terminal;
generating at least one or more dummy input fields and inserting the generated dummy input fields to occupy a portion of positions where the plurality of input fields are displayed;
In performing encryption on the name and ID of the input field for at least a portion of the plurality of input fields, encryption is performed based on the session ID value and the seed value provided when the user terminal accesses the macro prevention server. performing;
transmitting the encrypted name and ID to the user terminal, and receiving an encrypted input value from the user terminal;
decoding the input value received from the user terminal based on the session ID value and the seed value; and
storing the decrypted input value in a database;
Inserting the generated dummy input field so that it occupies a portion of the positions where the plurality of input fields are displayed includes:
The step of reducing the size or moving the position of the input field existing at the corresponding position before the generated dummy input field is inserted so that there is no positionally overlapping part with the generated dummy input field is further performed. A method for preventing macro action of a macro prevention server, including.
제1항에 있어서,
상기 더미 입력 필드의 생성 단계는,
상기 서비스 인터페이스를 구현하기 위한 소스 코드 내부에 더미 입력 필드 생성을 위한 더미 코드를 삽입하는 단계를 더 포함하는, 매크로 방지 서버의 매크로 동작 방지 방법.
According to claim 1,
The step of generating the dummy input field includes:
The method for preventing macro operation of a macro prevention server further comprising inserting a dummy code for generating a dummy input field into the source code for implementing the service interface.
제2항에 있어서,
상기 소스 코드 내부에 삽입되는 더미 코드의 개수가 랜덤하게 결정되는 것을 특징으로 하는, 매크로 방지 서버의 매크로 동작 방지 방법.
3. The method of claim 2,
A method for preventing macro operation of a macro prevention server, characterized in that the number of dummy codes inserted into the source code is randomly determined.
제2항에 있어서,
상기 더미 코드는 상기 더미 코드를 통해 생성되는 더미 입력 필드와 대응되는 입력 필드의 소스 코드와 동일한 형식으로 생성되며, 대응되는 소스 코드와 일부 식별자만이 상이하도록 생성되는 것을 특징으로 하는, 매크로 방지 서버의 매크로 동작 방지 방법.
3. The method of claim 2,
The dummy code is generated in the same format as the source code of the input field corresponding to the dummy input field generated through the dummy code, and is generated so that only some identifiers are different from the corresponding source code. How to prevent macro action in .
삭제delete 제1항에 있어서,
상기 복수의 입력 필드 위치를 랜덤하게 결정하는 단계는,
복수의 입력 필드 간의 간격을 조절하는 단계를 더 포함하는, 매크로 방지 서버의 매크로 동작 방지 방법.
According to claim 1,
The step of randomly determining the positions of the plurality of input fields includes:
Further comprising the step of adjusting an interval between the plurality of input fields, the macro operation prevention method of the macro prevention server.
매크로 방지 서버가 웹(Web) 상에서 제공되는 서비스에 대한 매크로 동작을 방지하는 방법에 있어서,
사용자 단말기에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정하는 단계;
적어도 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드를 상기 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입하는 단계;
상기 복수의 입력 필드의 적어도 일부에 대해 입력 필드의 이름 및 아이디에 대한 암호화를 수행함에 있어, 상기 사용자 단말기가 상기 매크로 방지 서버에 접속할 시에 부여되는 세션 ID값 및 시드값을 기초로 하여 암호화를 수행하는 단계;
암호화가 수행된 이름 및 아이디를 상기 사용자 단말기로 전송하고, 상기 사용자 단말기로부터 암호화된 상태의 입력값을 수신하는 단계;
상기 사용자 단말기로부터 수신한 입력값을 상기 세션 ID값 및 시드값을 기초로 복호화하는 단계; 및
복호화된 입력값을 데이터베이스에 저장하는 단계를 포함하고,
상기 사용자 단말기를 통해 시도되는 서비스 요청의 시간 대비 빈도수를 계산하고 계산된 값에 기초하여 매크로 동작 방지 기술을 적용할 사용자를 결정하는 단계를 더 포함하는, 매크로 방지 서버의 매크로 동작 방지 방법.
In the method of preventing macro action for a service provided on the web by a macro prevention server,
randomly determining positions of a plurality of input fields existing on a service interface provided to a user terminal;
generating at least one or more dummy input fields and inserting the generated dummy input fields to occupy a portion of positions where the plurality of input fields are displayed;
In performing encryption on the name and ID of the input field for at least a portion of the plurality of input fields, encryption is performed based on the session ID value and the seed value provided when the user terminal accesses the macro prevention server. performing;
transmitting the encrypted name and ID to the user terminal, and receiving an encrypted input value from the user terminal;
decoding the input value received from the user terminal based on the session ID value and the seed value; and
storing the decrypted input value in a database;
Calculating the frequency versus time of service requests attempted through the user terminal, and determining a user to which a macro operation prevention technology is to be applied based on the calculated value.
제1항에 있어서,
상기 시드값은, 암호화가 수행되는 시각 정보에 기초하여 결정되는 것을 특징으로 하는, 매크로 방지 서버의 매크로 동작 방지 방법.
According to claim 1,
The seed value, characterized in that determined based on the time information on which encryption is performed, the macro operation prevention method of the macro prevention server.
매크로 방지 서버가 웹(Web) 상에서 제공되는 서비스에 대한 매크로 동작을 방지하는 방법에 있어서,
사용자 단말기에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정하는 단계;
적어도 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드를 상기 복수의 입력 필드가 표시되는 위치 중 일부를 차지하도록 삽입하는 단계;
상기 복수의 입력 필드의 적어도 일부에 대해 입력 필드의 이름 및 아이디에 대한 암호화를 수행함에 있어, 상기 사용자 단말기가 상기 매크로 방지 서버에 접속할 시에 부여되는 세션 ID값 및 시드값을 기초로 하여 암호화를 수행하는 단계;
암호화가 수행된 이름 및 아이디를 상기 사용자 단말기로 전송하고, 상기 사용자 단말기로부터 암호화된 상태의 입력값을 수신하는 단계;
상기 사용자 단말기로부터 수신한 입력값을 상기 세션 ID값 및 시드값을 기초로 복호화하는 단계; 및
복호화된 입력값을 데이터베이스에 저장하는 단계를 포함하고,
상기 복호화된 입력값과 해당 입력값이 속하는 입력 필드의 종류를 비교하여 상기 복호화된 입력값이 대응되는 입력 필드에 정상적으로 배치되었는지를 확인하는 단계를 더 포함하는, 매크로 방지 서버의 매크로 동작 방지 방법.
In the method of preventing macro action for a service provided on the web by a macro prevention server,
randomly determining positions of a plurality of input fields existing on a service interface provided to a user terminal;
generating at least one or more dummy input fields and inserting the generated dummy input fields to occupy a portion of positions where the plurality of input fields are displayed;
In performing encryption on the name and ID of the input field for at least a portion of the plurality of input fields, encryption is performed based on the session ID value and the seed value provided when the user terminal accesses the macro prevention server. performing;
transmitting the encrypted name and ID to the user terminal, and receiving an encrypted input value from the user terminal;
decoding the input value received from the user terminal based on the session ID value and the seed value; and
storing the decrypted input value in a database;
The method further comprising the step of comparing the decoded input value with a type of an input field to which the corresponding input value belongs, and confirming whether the decoded input value is normally placed in a corresponding input field.
웹(Web) 상에서 제공되는 서비스에 대한 매크로 동작 방지를 위해 동작하는 매크로 방지 서버에 있어서,
사용자 단말기에 제공되는 서비스 인터페이스 상에 존재하는 복수의 입력 필드 위치를 랜덤하게 결정하는 DOM구조 랜덤화부;
적어도 하나 이상의 더미 입력 필드를 생성하고 생성된 더미 입력 필드가 상기 복수의 입력 필드가 표시하는 위치 중 일부를 차지하도록 삽입하는 더미 필드 생성부;
상기 복수의 입력 필드의 적어도 일부에 대해 입력 필드의 이름 및 아이디에 대한 암호화를 수행함에 있어, 상기 사용자 단말기가 상기 매크로 방지 서버에 접속할 시에 부여되는 세션 ID값 및 시드값을 기초로 하여 암호화를 수행하며, 암호화가 수행된 이름 및 아이디를 상기 사용자 단말기로 전송하는 입력 필드 암호화부;
상기 사용자 단말기로부터 암호화된 상태의 입력값을 수신하여, 상기 사용자 단말기로부터 수신한 입력값을 상기 세션 ID값 및 시드값을 기초로 복호화하는 입력값 복호화부; 및
복호화된 입력값을 데이터베이스 서버에 전달하는 통신부를 포함하고,
상기 더미 필드 생성부는 상기 생성된 더미 입력 필드가 삽입되기 이전에 해당 위치에 존재하던 입력 필드의 크기를 축소시키거나 위치를 이동시켜, 생성된 더미 입력 필드와 위치적으로 중복되는 부분이 존재하지 않도록 조절하는, 매크로 방지 서버.
In the macro prevention server that operates to prevent macro operation for services provided on the Web,
a DOM structure randomizer for randomly determining positions of a plurality of input fields existing on a service interface provided to a user terminal;
a dummy field generator generating at least one dummy input field and inserting the generated dummy input field to occupy a portion of positions displayed by the plurality of input fields;
In performing encryption on the name and ID of the input field for at least a portion of the plurality of input fields, encryption is performed based on the session ID value and the seed value provided when the user terminal accesses the macro prevention server. an input field encryption unit for transmitting the encrypted name and ID to the user terminal;
an input value decoding unit receiving an encrypted input value from the user terminal and decoding the input value received from the user terminal based on the session ID value and the seed value; and
It includes a communication unit that transmits the decoded input value to the database server,
The dummy field generating unit reduces the size or moves the position of the input field existing at the corresponding position before the generated dummy input field is inserted, so that there is no positionally overlapping part with the generated dummy input field. Regulating, anti-macro server.
KR1020200080052A 2020-06-30 2020-06-30 Method for preventing macro on web service and server performing the same KR102362031B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200080052A KR102362031B1 (en) 2020-06-30 2020-06-30 Method for preventing macro on web service and server performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200080052A KR102362031B1 (en) 2020-06-30 2020-06-30 Method for preventing macro on web service and server performing the same

Publications (2)

Publication Number Publication Date
KR20220001743A KR20220001743A (en) 2022-01-06
KR102362031B1 true KR102362031B1 (en) 2022-02-11

Family

ID=79347824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200080052A KR102362031B1 (en) 2020-06-30 2020-06-30 Method for preventing macro on web service and server performing the same

Country Status (1)

Country Link
KR (1) KR102362031B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200059490A1 (en) * 2015-10-22 2020-02-20 Versafe Ltd. Methods for hypertext markup language (html) input field obfuscation and devices thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070039415A (en) * 2005-10-08 2007-04-12 강영주 Macro prevention technique and algorithm in online game
KR101042227B1 (en) * 2009-11-24 2011-06-16 이니텍(주) A Method for Preventing from Hacking with Virtual Keyboard
KR101837726B1 (en) 2017-07-11 2018-04-27 주식회사 쿼리시스템즈 Method and apparatus for blocking illegal reservation
EP3461055B1 (en) * 2017-09-20 2020-02-12 Universidad de Vigo System and method for secure outsourced annotation of datasets

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200059490A1 (en) * 2015-10-22 2020-02-20 Versafe Ltd. Methods for hypertext markup language (html) input field obfuscation and devices thereof

Also Published As

Publication number Publication date
KR20220001743A (en) 2022-01-06

Similar Documents

Publication Publication Date Title
TW201516911A (en) Data processing method, device and system thereof
KR101746279B1 (en) System and method for authenticating user using contact list
CN103269273B (en) A kind of dynamic password login system of independent account seamless access and method
US20190354669A1 (en) 3d virtual interactive digital user authentication security
KR20230173672A (en) On-demand applications for extending web services
US20150339744A1 (en) Systems and methods for requesting a quote or processing an order
US11301862B2 (en) Secure transfer of tokens between devices
CN105516225A (en) Operation object method, device and system
KR102362031B1 (en) Method for preventing macro on web service and server performing the same
KR20220169876A (en) System for providing ip licensing platform
KR102114409B1 (en) Revocable platform identifiers
US20210397679A1 (en) System and method for securing a browser against font usage fingerprinting
CN110266686B (en) Data sharing method, device, equipment and computer readable storage medium
US10861111B2 (en) Distributed systems, devices and methods for dispensing fuel
US20180060867A1 (en) Secure Electronic Payment Transaction Processing with Integrated Data Tokenization
JP2007052489A (en) User authentication method and user authentication program
CN114846466A (en) System and method for data access control of secure memory using short-range transceivers
KR101459283B1 (en) 2 Channel authentication device and method
JP5028231B2 (en) Transaction authentication method
CN104395922A (en) Systems, methods, and computer program products for providing offers to mobile wallets
US20240086519A1 (en) System and method for distributed management of consumer data
US9703448B2 (en) Systems, devices, and methods for distributed processing for preauthorized payment
US9323910B2 (en) Method, client and server of password verification, and password terminal system
US11037554B1 (en) Network of domain knowledge based conversational agents
CN107272920B (en) Method and device for changing corresponding relation between keys and characters

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant