KR102277870B1 - Method for preventing automatic login using random script, and server for executing the same - Google Patents

Method for preventing automatic login using random script, and server for executing the same Download PDF

Info

Publication number
KR102277870B1
KR102277870B1 KR1020200012457A KR20200012457A KR102277870B1 KR 102277870 B1 KR102277870 B1 KR 102277870B1 KR 1020200012457 A KR1020200012457 A KR 1020200012457A KR 20200012457 A KR20200012457 A KR 20200012457A KR 102277870 B1 KR102277870 B1 KR 102277870B1
Authority
KR
South Korea
Prior art keywords
script
obfuscated
request
parameter
client
Prior art date
Application number
KR1020200012457A
Other languages
Korean (ko)
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 KR1020200012457A priority Critical patent/KR102277870B1/en
Application granted granted Critical
Publication of KR102277870B1 publication Critical patent/KR102277870B1/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/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Provided are a method for preventing automatic login using a random script, which efficiently blocks web scraping through automated programs, and a server for executing the same. According to one embodiment of the present invention, the server comprises: a request receiving unit receiving a script request for logging in or moving a web page from a client; a randomization unit randomizing a parameter key, a parameter value, and a uniform resource locator (URL) for login or web page movement to generate an obfuscated script and storing information included in the obfuscated script in a set mapping table; a response unit transmitting the obfuscated script to the client in response to the script request; and a verification unit receiving the request of a random URL from the client as the random URL is generated from the obfuscated script and verifying the request of the random URL on the basis of the information stored in the mapping table.

Description

랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버{METHOD FOR PREVENTING AUTOMATIC LOGIN USING RANDOM SCRIPT, AND SERVER FOR EXECUTING THE SAME}Method for preventing automatic login using random script and server for performing the same {METHOD FOR PREVENTING AUTOMATIC LOGIN USING RANDOM SCRIPT, AND SERVER FOR EXECUTING THE SAME}

예시적인 실시예들은 프로그램을 통한 웹의 자동 로그인을 방지하는 기술과 관련된다.Exemplary embodiments relate to techniques for preventing automatic login of the web through a program.

웹 스크래핑(Web Scraping)이란 프로그램에 의해 자동으로 웹 시스템에 접속하여 필요한 자료를 추출하여 가져오는 기술이나 프로그램을 의미한다. 일반적으로, 웹 페이지에는 개인정보나 고객 데이터 등과 같이 제3자가 수집해서는 안되는 민감한 데이터가 포함될 수 있다. 그러나, 최근 들어 자동화된 툴을 이용하여 개인정보와 같은 민감한 정보를 수집하거나, 방문 실적에 따른 광고 수익을 노리는 자들이 웹 페이지에 접속하지 않으면서 데이터만 수집해 가는 경우가 종종 발생한다. 공공기관이나, 은행, 카드사, 증권사 등과 같은 금융기관에서는 이러한 웹 스크래핑으로 인한 시스템 안정성 문제가 지속적으로 제기되고 있다. 특히, 이러한 웹 스크래핑이 특정 시간에 집중되는 경우 공공기관이나 금융기관 등과 같은 데이터 제공자가 제공하는 서비스가 느려지거나 데이터 제공자의 서버가 다운되기도 한다. 이와 같이, 웹 스크래핑으로 인해 데이터 제공자의 시스템 운영비용 및 불안정성이 증가하고 있으며 이에 따라 웹 스크래핑의 차단에 대한 요구가 발생하고 있다. Web scraping refers to a technology or program that automatically accesses a web system by a program, extracts necessary data, and brings it. In general, web pages may contain sensitive data that should not be collected by third parties, such as personal information or customer data. However, recently, there are cases in which those who collect sensitive information such as personal information using automated tools or who aim for advertising revenue according to visit performance collect only data without accessing the web page. In public institutions, financial institutions such as banks, credit card companies, and securities companies, system stability problems due to web scraping are constantly being raised. In particular, when such web scraping is concentrated at a specific time, the service provided by a data provider such as a public institution or a financial institution may be slowed down or the server of the data provider may be down. As described above, the system operating cost and instability of data providers are increasing due to web scraping, and accordingly, there is a demand for blocking web scraping.

한국공개특허공보 제10-2015-0085716호(2015.07.24)Korean Patent Publication No. 10-2015-0085716 (2015.07.24)

예시적인 실시예들은 자동화된 프로그램을 통한 웹 스크래핑을 효율적으로 차단하는 수단을 제공하기 위한 것이다.Exemplary embodiments are intended to provide a means to effectively block web scraping via automated programs.

예시적인 실시예에 따르면, 요청 수신부에서, 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 단계; 랜덤화부에서, 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하는 단계; 상기 랜덤화부에서, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 단계; 응답부에서, 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계; 검증부에서, 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하는 단계; 및 상기 검증부에서, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 단계를 포함하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법이 제공된다.According to an exemplary embodiment, in the request receiving unit, receiving a request of a script for logging in or moving a web page from a client; generating an obfuscated script after randomizing, in the randomizer, a parameter key, a parameter value, and a Uniform Resource Locator (URL) for logging in or moving a web page; storing, in the randomizer, information included in the obfuscated script in a set mapping table; transmitting, in a response unit, the obfuscated script to the client in response to the request for the script; receiving, in a verification unit, a request for the random URL from the client as a random URL is generated from the obfuscated script; and verifying, in the verification unit, the request of the random URL based on the information stored in the mapping table, an automatic login prevention method using a random script is provided.

상기 랜덤 스크립트를 이용한 자동 로그인 방지 방법은, 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계 이전에, 상기 랜덤화부에서, 서로 다른 N개의 상기 난독화된 스크립트를 생성하는 단계; 및 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장하는 단계를 더 포함할 수 있다.The automatic login prevention method using the random script includes, before transmitting the obfuscated script to the client, generating, in the randomizer, N different obfuscated scripts; and storing information included in each of the obfuscated scripts in the mapping table for each obfuscated script.

상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송할 수 있다.In the transmitting of the obfuscated script to the client, one of the N obfuscated scripts may be transmitted to the client in response to the request of the script.

상기 난독화된 스크립트를 생성하는 단계는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.The generating of the obfuscated script may include permuting the parameter key and the parameter value, randomly setting an initial vector of a hash function, and then performing the hash function with the substituted parameter key and the parameter value. The obfuscated script may be generated so that the random URL is generated by hashing it as a function.

상기 난독화된 스크립트를 생성하는 단계는, 치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하고, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.The generating of the obfuscated script may include randomly selecting whether to reverse the substituted parameter key and the parameter value, and any point of the substituted parameter key and the parameter value or the reversed value. The obfuscated script may be generated so that the random URL is generated by randomly adding a dummy value to .

상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함할 수 있다.The information stored in the mapping table may include one or more of the parameter key and information about before and after substitution of the parameter value, the initial vector, whether the inversion is performed, whether the dummy value is added, and a position.

상기 랜덤한 URL의 요청을 검증하는 단계는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 랜덤한 URL의 요청을 검증할 수 있다.The verifying of the request of the random URL may include verifying the validity of the random URL with reference to the mapping table, and extracting the parameter key and the parameter value based on information stored in the mapping table to extract the random URL. 's request can be verified.

다른 예시적인 실시예에 따르면, 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 요청 수신부; 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 랜덤화부; 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 응답부; 및 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하고, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 검증부를 포함하는, 서버가 제공된다.According to another exemplary embodiment, a request receiving unit for receiving a script request for login or web page movement from a client; After randomizing a parameter key, parameter value, and URL (Uniform Resource Locator) for the login or web page movement, an obfuscated script is generated, and the obfuscated script is included in the a randomizer for storing information in a set mapping table; a response unit transmitting the obfuscated script to the client in response to the script request; and a verification unit that receives the request of the random URL from the client as a random URL is generated from the obfuscated script, and verifies the request of the random URL based on information stored in the mapping table, Server is provided.

상기 랜덤화부는, 서로 다른 N개의 상기 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다.The randomizer may generate N different obfuscated scripts, and store information included in each of the obfuscated scripts in the mapping table for each obfuscated script.

상기 응답부는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송할 수 있다.The response unit may transmit one of the N obfuscated scripts to the client in response to the script request.

상기 랜덤화부는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.The randomization unit replaces each of the parameter key and the parameter value, randomly sets an initial vector of a hash function, and hashes the substituted parameter key and the parameter value with the hash function to generate the random You can create the obfuscated script so that one URL is generated.

상기 랜덤화부는, 치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하고, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.The randomization unit randomly selects whether to reverse the substituted parameter key and the parameter value, and place a dummy value at an arbitrary point of the substituted parameter key and the parameter value or the inverted value. ) can be added randomly to generate the obfuscated script so that the random URL is generated.

상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함할 수 있다.The information stored in the mapping table may include one or more of the parameter key and information about before and after substitution of the parameter value, the initial vector, whether the inversion is performed, whether the dummy value is added, and a position.

상기 검증부는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 랜덤한 URL의 요청을 검증할 수 있다.The verification unit may verify validity of the random URL by referring to the mapping table, and may verify the request of the random URL by extracting the parameter key and the parameter value based on information stored in the mapping table.

예시적인 실시예에 따르면, 클라이언트의 로그인용 스크립트 요청에 따라 난독화된 스크립트를 클라이언트로 전송하고 상기 난독화된 스크립트가 실행됨에 따라 랜덤한 URL의 요청이 서버로 전송되도록 할 수 있다. 이 경우, 종래처럼 로그인을 위한 URL이 고정되는 게 아니라 매번 다르게 계산되므로, 자동화 프로그램은 서버가 원하는 형태의 HTTP Request를 전송할 수 없게 된다. According to an exemplary embodiment, the obfuscated script may be transmitted to the client in response to the client's request for the script for login, and a random URL request may be transmitted to the server as the obfuscated script is executed. In this case, since the URL for login is calculated differently each time instead of being fixed as in the prior art, the automation program cannot transmit the HTTP Request in the desired form by the server.

도 1은 클라이언트가 서버에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시
도 2는 자동화 프로그램이 서버에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시
도 3은 예시적인 실시예에 따른 랜덤 스크립트를 이용한 자동 로그인 방지 방법을 설명하기 위한 흐름도
도 4는 예시적인 실시예에 따른 서버의 상세 구성도
도 5는 예시적인 실시예에 따른 랜덤화부에서 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 과정을 나타낸 예시
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
1 is an example showing a general flow chart in which a client requests a login to a server
Figure 2 is an example showing a general flow diagram of an automated program requesting a login to the server
3 is a flowchart illustrating a method for preventing automatic login using a random script according to an exemplary embodiment;
Fig. 4 is a detailed configuration diagram of a server according to an exemplary embodiment;
5 is an example illustrating a process of generating an obfuscated script by the randomizer according to an exemplary embodiment and storing information included in the obfuscated script in a set mapping table;
6 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments;

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and/or systems described herein. However, this is merely an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, the terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification. The terminology used in the detailed description is for the purpose of describing embodiments of the present invention only, and should in no way be limiting. Unless explicitly used otherwise, expressions in the singular include the meaning of the plural. In this description, expressions such as “comprising” or “comprising” are intended to indicate certain features, numbers, steps, acts, elements, some or a combination thereof, one or more other than those described. It should not be construed to exclude the presence or possibility of other features, numbers, steps, acts, elements, or any part or combination thereof.

도 1은 클라이언트(110)가 서버(120)에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시이다. 본 실시예들에 있어서, 클라이언트(110)는 사용자가 소지하는 단말로서, 예를 들어 스마트폰, 데스크탑, 태블릿 PC, PDA(Personal Digital Assistant), 노트북 등이 될 수 있다. 또한, 서버(120)는 데이터 제공자의 서버로서, 예를 들어 은행 서버, 카드사 서버, 증권사 서버 등이 될 수 있다. 사용자는 클라이언트(110)의 웹 브라우저를 통해 서버(120)에서 제공되는 웹 페이지에 접속한 후 로그인 절차를 거쳐 서버(120)로부터 각종 데이터를 전달 받거나 관련 서비스를 제공 받을 수 있다.FIG. 1 is an example showing a general flowchart in which a client 110 requests a login to a server 120 . In the present embodiments, the client 110 is a terminal possessed by a user, and may be, for example, a smartphone, a desktop, a tablet PC, a personal digital assistant (PDA), a notebook computer, or the like. In addition, the server 120 is a server of the data provider, and may be, for example, a bank server, a card company server, a securities company server, or the like. After accessing a web page provided by the server 120 through the web browser of the client 110 , the user may receive various data or related services from the server 120 through a login procedure.

이를 위해, 클라이언트(110)는 서버(120)로 로그인용 스크립트를 요청할 수 있다(S102). 여기서, 스크립트는 소스 코드를 컴파일(compile)하지 않고도 실행할 수 있는 프로그래밍 언어로서, 예를 들어 자바스크립트 등이 될 수 있다.To this end, the client 110 may request a script for login to the server 120 (S102). Here, the script is a programming language that can be executed without compiling the source code, and may be, for example, JavaScript.

다음으로, 서버(120)는 클라이언트(110)의 요청에 대한 응답으로 로그인용 스크립트를 클라이언트(110)로 전송한다(S104).Next, the server 120 transmits the login script to the client 110 in response to the request of the client 110 (S104).

다음으로, 클라이언트(110)는 사용자로부터 로그인 정보를 입력 받는다(S106). 여기서, 로그인 정보는 예를 들어, 로그인을 위한 사용자 아이디, 사용자 비밀번호, 인증서 서명 등이 될 수 있다.Next, the client 110 receives login information from the user (S106). Here, the log-in information may be, for example, a user ID for log-in, a user password, and a certificate signature.

다음으로, 클라이언트(110)는 웹 브라우저 상에서 사용자로부터 설정된 로그인 버튼의 클릭을 입력 받는다(S108).Next, the client 110 receives a click of the login button set by the user on the web browser (S108).

다음으로, 클라이언트(110)는 HTTP request를 서버(120)로 전송한다(S110). 이때, HTTP request는 아래 3가지 값을 포함한다.Next, the client 110 transmits an HTTP request to the server 120 (S110). In this case, the HTTP request includes the following three values.

1. 파라미터 키(parameter key)1. Parameter key

파라미터 키는 로그인 요청에 필요한 키로서, 예를 들어 사용자 아이디(UID), 사용자 패스워드(PWD), 인증서 서명(SIGN) 등이 될 수 있다.The parameter key is a key required for a login request, and may be, for example, a user ID (UID), a user password (PWD), a certificate signature (SIGN), and the like.

2. 파라미터 값(parameter value)2. Parameter value

파라미터 값은 파라미터 키에 대응되는 값으로서, 예를 들어 사용자 아이디의 값(value), 사용자 패스워드의 값(value), 인증서 서명의 값(value) 등이 될 수 있다.The parameter value is a value corresponding to the parameter key, and may be, for example, a value of a user ID, a value of a user password, a value of a certificate signature, and the like.

3. URL(Uniform Resource Locator)3. Uniform Resource Locator (URL)

로그인을 위한 주소로서, 일반적으로 예를 들어 login.do 와 같이 고정된다.As the address for login, it is usually fixed, for example, login.do .

클라이언트(110)는 이러한 3가지 정보를 포함하는 HTTP request를 서버(120)로 전송할 수 있다.The client 110 may transmit an HTTP request including these three pieces of information to the server 120 .

이후, 서버(120)는 클라이언트(110)로부터 상기 HTTP request을 수신하고, 상기 HTTP request에 포함된 정보들을 확인하여 클라이언트(110)의 로그인을 허용한다(S112).Thereafter, the server 120 receives the HTTP request from the client 110, checks information included in the HTTP request, and allows the client 110 to log in (S112).

도 2는 자동화 프로그램(130)이 서버(120)에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시이다. 본 실시예들에 있어서, 자동화 프로그램(130)은 웹 스크래핑을 위해 자동으로 웹 시스템에 접속하여 필요한 자료를 추출하여 가져오는 소프트웨어 또는 애플리케이션으로서, 예를 들어 스크래퍼(scraper), 봇(bot) 등이 될 수 있다. 상기 자동화 프로그램(130)은 웹 스크래핑을 수행하고자 하는 공격자의 단말(미도시)에 장착될 수 있다. 일반적으로, 자동화 프로그램(130)은 HTTP request에 포함되는 파라미터 키, 파라미터 값 및 URL을 미리 가지고 있다. 여기서, 파라미터 키와 URL은 고정값이며, 파라미터 값은 스크래핑을 수행하려는 사용자로부터 미리 입력 받을 수 있다.Figure 2 is an example showing a general flow diagram of the automation program 130 requests a login to the server (120). In the present embodiments, the automation program 130 is a software or application that automatically accesses a web system for web scraping and extracts and brings necessary data, for example, a scraper, a bot, etc. can be The automation program 130 may be installed in a terminal (not shown) of an attacker who wants to perform web scraping. In general, the automation program 130 has a parameter key, parameter value, and URL included in the HTTP request in advance. Here, the parameter key and URL are fixed values, and the parameter value may be input in advance from a user who wants to perform scraping.

도 2를 참조하면, 자동화 프로그램(130)은 이와 같이 미리 확보한 파라미터 키, 파라미터 값 및 URL을 토대로 HTTP request를 자동으로 생성한다(S202). 이때, 자동화 프로그램(130)은 도 1에서와 달리 웹 브라우저를 띄우지 않고 로그인을 위한 HTTP request를 곧바로 생성할 수 있다.Referring to FIG. 2 , the automation program 130 automatically generates an HTTP request based on the previously secured parameter key, parameter value, and URL ( S202 ). In this case, the automation program 130 may directly generate an HTTP request for login without opening a web browser unlike in FIG. 1 .

이후, 자동화 프로그램(130)은 상기 HTTP request를 서버(120)로 전송한다(S204).Then, the automation program 130 transmits the HTTP request to the server 120 (S204).

이에 따라, 서버(120)는 자동화 프로그램(130)으로부터 상기 HTTP request을 수신하고, 상기 HTTP request에 포함된 정보들을 확인하여 자동화 프로그램(130)의 로그인을 허용한다(S206). 이와 같은 과정을 통해 자동화 프로그램(130)의 웹 스크래핑이 이루어지며, 서버(120) 입장에서는 웹 스크래핑으로 인한 시스템 안정성 문제가 지속적으로 발생하게 된다. 이하에서는, 도 3 내지 도 5를 참조하여 이러한 자동화 프로그램(130)의 웹 스크래핑을 방지하기 위한 방법을 구체적으로 살펴보기로 한다.Accordingly, the server 120 receives the HTTP request from the automation program 130, checks the information included in the HTTP request, and allows the login of the automation program 130 (S206). Through this process, web scraping of the automation program 130 is performed, and system stability problems due to web scraping are continuously generated from the server 120's standpoint. Hereinafter, a method for preventing web scraping of the automated program 130 will be described in detail with reference to FIGS. 3 to 5 .

도 3은 예시적인 실시예에 따른 랜덤 스크립트를 이용한 자동 로그인 방지 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.3 is a flowchart illustrating a method for preventing automatic login using a random script according to an exemplary embodiment. In the illustrated flowchart, the method is described by dividing the method into a plurality of steps, but at least some of the steps are performed in a reversed order, are performed together in combination with other steps, are omitted, are performed separately, or are not shown. One or more steps may be added and performed.

먼저, 클라이언트(110)는 서버(120)로 로그인용 스크립트를 요청한다(S302). First, the client 110 requests a script for login to the server 120 (S302).

다음으로, 서버(120)는 클라이언트(110)의 스크립트 요청에 따라 고정된 로그인용 스크립트를 클라이언트(110)에 전송하는 대신 난독화된 스크립트를 생성한다(S304).Next, the server 120 generates an obfuscated script instead of transmitting the fixed login script to the client 110 according to the script request of the client 110 (S304).

구체적으로, 서버(120)는 예를 들어, 아래 표 1 및 표 2와 같이 파라미터 키와 파라미터 값이 각각 치환되도록 기존 로그인 요청을 처리하는 스크립트(즉, 기존 로그인용 스크립트)를 랜덤화할 수 있다.Specifically, the server 120 may randomize a script for processing an existing login request (ie, a script for an existing login) such that, for example, parameter keys and parameter values are substituted, respectively, as shown in Tables 1 and 2 below.

파라미터 키 랜덤화Parameter key randomization 기존 파라미터 키Existing parameter key 치환된 파라미터 키substituted parameter key 기존 로그인용 스크립트에
존재하는 값
Script for existing login
value that exists
UIDUID abab
PWDPWD xyzxyz SIGNSIGN f5f5 새로 추가하는 값으로 0 ~ N개가 랜덤하게 추가0 ~ N are randomly added as a newly added value c3ac3a funfun

파라미터 값 랜덤화Randomize parameter values 기존 파라미터 값Existing parameter values 치환된 파라미터 키substituted parameter key 자동화 프로그램(130)이 가지고 있는 값The value that the automation program 130 has UID_valueUID_value UID_valueUID_value PWD_valuePWD_value ['PWD_value']['PWD_value'] SIGN_valueSIGN_value ['N', 'SIGN_value']['N', 'SIGN_value'] 새로 추가하는 값으로 0 ~ N개가 랜덤하게 추가0 ~ N are randomly added as a newly added value c3ac3a ['axy']['axy'] funfun [7, 'k5'][7, 'k5']

또한, 서버(120)는 예를 들어, 아래와 같이 랜덤 치환된 파라미터 정보를 통해 랜덤한 URL이 동적으로 생성되도록 기존 로그인용 스크립트를 랜덤화할 수 있다.In addition, the server 120 may randomize the existing login script so that a random URL is dynamically generated through, for example, randomly substituted parameter information as follows.

구체적으로, 앞선 표 1 및 표 2를 통해 새롭게 생성된 파라미터 키와 파라미터 값을 파라미터 정보(P)라 하면, 파라미터 정보(P)는 아래와 같이 정의될 수 있다.Specifically, if the parameter key and parameter value newly created through Tables 1 and 2 are referred to as parameter information P, the parameter information P may be defined as follows.

P : ab=UID_value&xyz=['PWD_value']&f5=['N', 'SIGN_value']&c3a=['axy']& fun=[7, 'k5']P : ab=UID_value&xyz=['PWD_value']&f5=['N', 'SIGN_value']&c3a=['axy']& fun=[7, 'k5']

이때, 서버(120)는 아래 Step 1 ~ Step 3을 통해 랜덤한 URL이 동적으로 생성되도록 기존 로그인용 스크립트를 랜덤화할 수 있다.In this case, the server 120 may randomize the existing login script so that a random URL is dynamically generated through Step 1 to Step 3 below.

Step 1 : P 값을 해시 함수를 통해 메시지 축약을 수행하는데, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정 Step 1 : Perform message reduction through a hash function on the P value, and set the initial vector of the hash function randomly

HASH_P = Hash(P)_with_random_initial_VectorHASH_P = Hash(P)_with_random_initial_Vector

Step 2 : HASH_P의 반전(reverse) 여부를 랜덤하게 선택 Step 2: Randomly select whether to reverse HASH_P

RndReversed_HASH_P = Reverse(HASH_P)_with_random_reverseRndReversed_HASH_P = Reverse(HASH_P)_with_random_reverse

Step 3 : RndReversed_HASH_P의 임의의 지점(예를 들어, 앞, 뒤 등)에 더미 값(dummy value)을 랜덤하게 추가Step 3 : Randomly add a dummy value at any point (eg, front, back, etc.) of RndReversed_HASH_P

URL = front_dummy(0~N char) + RndReversed_HASH_P + backend_dummy(0~N char)URL = front_dummy(0~N char) + RndReversed_HASH_P + backend_dummy(0~N char)

이후, 서버(120)는 위와 같이 랜덤화된 스크립트를 난독화하여 난독화된 스크립트를 생성할 수 있다. 예를 들어, 서버(120)는 Control Flow Flattening, Debug Protection, Dead Code Injection, Self Defending 등 다양한 기법을 활용하여 상기 랜덤화한 스크립트를 난독화할 수 있다. 이러한 과정을 통해 난독화된 스크립트는 실시간 분석을 통한 해독이 어렵다.Thereafter, the server 120 may obfuscate the randomized script as above to generate the obfuscated script. For example, the server 120 may obfuscate the randomized script by using various techniques such as Control Flow Flattening, Debug Protection, Dead Code Injection, and Self Defending. Scripts obfuscated through this process are difficult to decipher through real-time analysis.

또한, 상기 난독화된 스크립트는 후술할 바와 같이, 사용자가 HTTP Request를 보낼 수 있는 함수, 예를 들어 로그인 버튼을 클릭하는 순간 실행되어 Step 3를 통해 계산된 랜덤한 URL을 생성하여 출력할 수 있다. In addition, as will be described later, the obfuscated script is executed as soon as a user clicks a function that can send an HTTP request, for example, a login button, and can generate and output a random URL calculated through Step 3. .

서버(120)는 이와 같은 방법을 통해 난독화된 스크립트를 생성할 수 있다. 이때, 서버(120)는 서로 다른 N개의 상기 난독화된 스크립트를 생성할 수 있다. 여기서, 서버(120)는 상술한 파라미터 키, 파라미터 값 및 URL을 서로 다른 방식으로 랜덤화할 수 있다. 즉, 서버(120)는 상술한 파라미터 키, 파라미터 값 및 URL을 랜덤화할 때마다 랜덤화 방식(또는 인코딩 방식) 또한 다르게 할 수 있으며, 이 경우 서로 다른 형태의 N개의 난독화된 스크립트가 생성될 수 있다.The server 120 may generate an obfuscated script through this method. In this case, the server 120 may generate N different obfuscated scripts. Here, the server 120 may randomize the above-described parameter key, parameter value, and URL in different ways. That is, the server 120 may also make a different randomization method (or encoding method) whenever it randomizes the above-described parameter key, parameter value, and URL. In this case, N obfuscated scripts of different types will be generated. can

다음으로, 서버(120)는 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장한다(S306). 예를 들어, 서버(120)는 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보(예를 들어, 파라미터 키 및 파라미터 값의 치환 전/치환 후의 값, 새로운 값이 추가되었는지 여부, 실제 파라미터 값을 배열에 넣었는지 여부 또는 어느 index에 넣었는지, 어떤 더미 값이 추가되었는지 여부 등), 상술한 Step 1 ~ Step 3의 밑줄 친 부분, 즉 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함하는 정보를 매핑 테이블에 저장할 수 있다. Next, the server 120 stores the information included in the obfuscated script in a set mapping table (S306). For example, the server 120 provides information about the parameter key and before and after replacement of the parameter value (eg, the value before/after replacement of the parameter key and the parameter value, whether a new value is added, the actual parameter value) is put into the array or at which index, which dummy value is added, etc.), the underlined part of Step 1 to Step 3 described above, that is, the initial vector, whether the inversion is performed, whether the dummy value is added. and information including one or more of a location may be stored in the mapping table.

또한, 상술한 바와 같이, 서버(120)는 서로 다른 N개의 상기 난독화된 스크립트를 생성할 수 있으며, 이 경우 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다.In addition, as described above, the server 120 may generate different N obfuscated scripts. In this case, the information included in each obfuscated script is stored in the mapping table for each obfuscated script. can be saved

매핑 테이블에 저장되는 정보들의 예시는 아래와 같다. Examples of information stored in the mapping table are as follows.

001 : {UID:'ab', PWD:'xyz', SIGN:'f5'…}001 : {UID:'ab', PWD:'xyz', SIGN:'f5'… }

002 : {…}002 : {… }

003 : {…}003 : {… }

00N : {…}00N: {… }

이와 같이, 서버(120)는 난독화된 스크립트 각각에 포함된 정보들을 매핑 테이블에 저장함으로써 각 난독화 스크립트가 어떤 방식으로 난독화되었는지 확인이 가능하다. As such, the server 120 stores information included in each obfuscated script in the mapping table, so that it is possible to check how each obfuscated script is obfuscated.

다음으로, 서버(120)는 S302 단계에서의 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 클라이언트(110)로 전송한다(S308). 이때, 서버(120)는 N개의 상기 난독화된 스크립트 중 클라이언트(110)로 전송한 난독화된 스크립트가 몇 번째 스크립트인지에 관한 정보를 세션(session)에 기록할 수 있다.Next, the server 120 transmits one of the N obfuscated scripts to the client 110 in response to the script request in step S302 (S308). In this case, the server 120 may record, in the session, the number of the obfuscated script transmitted to the client 110 among the N obfuscated scripts.

다음으로, 클라이언트(110)는 사용자로부터 로그인 정보를 입력 받는다(S310). 여기서, 로그인 정보는 예를 들어, 상술한 파라미터 값이 될 수 있다. Next, the client 110 receives login information from the user (S310). Here, the login information may be, for example, the parameter value described above.

다음으로, 클라이언트(110)는 웹 브라우저 상에서 사용자로부터 설정된 로그인 버튼의 클릭을 입력 받는다(S312).Next, the client 110 receives a click of the login button set by the user on the web browser (S312).

S312 단계에서의 로그인 버튼의 클릭에 따라, 난독화된 스크립트가 실행되어 파라미터 키 및 파라미터 값이 상술한 표 1 및 표 2의 방법에 따라 랜덤하게 치환된다(S314).According to the click of the login button in step S312, the obfuscated script is executed, and parameter keys and parameter values are randomly substituted according to the methods of Tables 1 and 2 described above (S314).

다음으로, 상기 파라미터 키 및 파라미터 값이 치환됨에 따라 상술한 Step 1 ~ Step 3의 방법에 따라 랜덤한 URL이 생성된다(S316).Next, as the parameter key and parameter value are substituted, a random URL is generated according to the method of Step 1 to Step 3 described above (S316).

다음으로, 클라이언트(110)는 상기 랜덤한 URL의 요청을 서버(120)로 전송한다(S318). 이때, 상기 랜덤한 URL은 종래와 달리 고정된 형태의 URL(예를 들어, login.do)이 아니라 로그인 요청시마다 매번 다르게 생성되며, 랜덤한 URL에 포함되는 정보들은 S306 단계에서 매핑 테이블에 저장되어 있다.Next, the client 110 transmits the random URL request to the server 120 (S318). At this time, the random URL is not a fixed URL (eg, login.do) unlike the prior art, but is generated differently each time a login request is made, and information included in the random URL is stored in the mapping table in step S306. have.

마지막으로, 서버(120)는 클라이언트(110)로부터 랜덤한 URL의 요청을 수신함에 따라 세션(session)에 저장된 정보를 통해 클라이언트(110)로부터 수신된 요청(즉, S318 단계에서의 요청)이 n번째 난독화된 스크립트를 통해 생성된 요청임을 확인하고, 이를 통해 클라이언트(110)의 요청을 검증한다(S320).Finally, as the server 120 receives a request of a random URL from the client 110 , the request received from the client 110 (that is, the request in step S318 ) through information stored in the session is n It is confirmed that the request is generated through the second obfuscated script, and through this, the request of the client 110 is verified (S320).

구체적으로, 서버(120)는 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증할 수 있다. 예를 들어, 서버(120)는 매핑 테이블에 포함된 n번째 난독화된 스크립트의 정보를 참조하여 파라미터(P)를 추출하고, 상기 파라미터(P)를 매핑 테이블에 저장된 초기 벡터로 해시한 후 클라이언트(110)로부터 수신된 랜덤한 URL에 상술한 과정을 동일하게 수행하여 도출된 두 개의 값을 비교하는 방식으로 상기 랜덤한 URL의 유효성을 검증할 수 있다.Specifically, the server 120 may verify the validity of the random URL with reference to the mapping table. For example, the server 120 extracts the parameter P with reference to the information of the nth obfuscated script included in the mapping table, hashes the parameter P into an initial vector stored in the mapping table, and then the client The validity of the random URL may be verified by comparing two values derived by performing the same process on the random URL received from 110 .

또한, 서버(120)는 상기 매핑 테이블을 참조하여 치환 전의 파라미터 키와 파라미터 값을 추출하고, 상기 랜덤한 URL로부터 추출된 파라미터 키와 파라미터 값을 각각 비교하여 상기 요청을 검증할 수 있다. 만약, 이와 같은 검증 결과 오류가 발생하지 않는 경우, 서버(120)는 상기 로그인을 위한 스크립트의 요청이 정상적인 것으로 판단하고 클라이언트(110)의 로그인을 허용할 수 있다. 만약, 이와 같은 검증 결과 오류가 발생하는 경우, 서버(120)는 는 상기 로그인을 위한 스크립트의 요청이 비정상적인 것으로 판단하고 클라이언트(110)의 로그인을 허용하지 않을 수 있다.Also, the server 120 may extract a parameter key and a parameter value before substitution with reference to the mapping table, and verify the request by comparing the parameter key and parameter value extracted from the random URL, respectively. If no error occurs as a result of the verification, the server 120 may determine that the script request for the login is normal and allow the login of the client 110 . If an error occurs as a result of such verification, the server 120 may determine that the script request for the login is abnormal and may not allow the login of the client 110 .

이와 같이, 예시적인 실시예에 따르면, 클라이언트(110)의 로그인용 스크립트 요청에 따라 난독화된 스크립트를 클라이언트(110)로 전송하고 상기 난독화된 스크립트가 실행됨에 따라 랜덤한 URL의 요청이 서버(120)로 전송되도록 할 수 있다. 이 경우, 종래처럼 로그인을 위한 URL이 고정되는 게 아니라 매번 다르게 계산되므로, 자동화 프로그램(130)은 서버(120)가 원하는 형태의 HTTP Request를 전송할 수 없게 된다. As described above, according to the exemplary embodiment, the obfuscated script is transmitted to the client 110 according to the login script request of the client 110, and as the obfuscated script is executed, a request of a random URL is transmitted to the server ( 120) can be transmitted. In this case, since the URL for login is calculated differently each time instead of being fixed as in the prior art, the automation program 130 cannot transmit the HTTP Request in the desired form by the server 120 .

자동화 프로그램(130)은 클라이언트(110)처럼 로그인용 스크립트를 서버(120)로 요청하여 난독화된 스크립트를 수신할 수도 있으나, 웹 브라우저를 띄우지 않으므로 상기 난독화된 스크립트를 실시간으로 분석해야 하며 이 경우 다수의 로그인 요청을 한꺼번에 처리할 수 없게 된다. 구체적으로, 자동화 프로그램(130)은 사용자의 아이디, 패스워드, 인증서 등에 대한 로그인 정보는 가지고 있으나, 난독화된 스크립트를 매번 분석해서 로그인 정보를 몇 차원 배열에 넣어야 하는지, 그 배열의 몇 번째 index에 넣어야 하는지, 특정 index에는 어떤 더미 값을 넣어야 하는지, URL 생성 과정에서 들어가는 해시 함수의 초기 벡터와 반전 여부, 더미 값의 추가 여부 및 위치 등을 알기 위해 난독화된 스크립트를 실시간으로 분석해서 찾아야 한다.The automation program 130 may receive the obfuscated script by requesting the login script to the server 120 like the client 110, but it does not launch a web browser, so the obfuscated script must be analyzed in real time. It becomes impossible to process multiple login requests at once. Specifically, the automation program 130 has login information for the user's ID, password, certificate, etc., but analyzes the obfuscated script every time to put the login information in a number-dimensional array, and at what index of the array. It is necessary to analyze the obfuscated script in real time to find out what dummy value to put in a specific index, whether the initial vector and inversion of the hash function used in the URL generation process, and whether or not to add a dummy value and location

한편, 여기서는 자동화 프로그램(130)을 통한 웹의 자동 로그인을 방지하는 예시에 대해서만 설명하였으나, 로그인이 아닌 일반 웹 페이지의 이동에도 상술한 방법이 동일하게 적용될 수 있다. 이 경우, 도 3의 S302 단계는 로그인용 스크립트의 요청 대신 웹 페이지의 이동을 위한 스크립트의 요청으로 바뀌면 되고, S310 단계 및 S312 단계는 로그인 정보 입력/로그인 버튼 클릭 대신 웹 페이지 이동을 위한 입력 또는 웹 페이지 이동 버튼 클릭으로 바뀌면 된다. 나머지 단계는 도 3에서 상술한 바와 동일하게 적용될 수 있다.Meanwhile, although only an example of preventing automatic web log-in through the automation program 130 has been described here, the above-described method may be equally applied to movement of a general web page other than log-in. In this case, step S302 of FIG. 3 may be changed to a script request for moving a web page instead of a request for a script for login, and steps S310 and S312 are input for moving a web page instead of inputting login information/clicking a login button or web It can be changed by clicking the page move button. The remaining steps may be applied in the same manner as described above in FIG. 3 .

도 4는 예시적인 실시예에 따른 서버(120)의 상세 구성도이다. 도 4에 도시된 바와 같이, 예시적인 실시예에 따른 서버(120)는 요청 수신부(402), 랜덤화부(404), 응답부(406) 및 검증부(408)를 포함한다.4 is a detailed configuration diagram of the server 120 according to an exemplary embodiment. As shown in FIG. 4 , the server 120 according to the exemplary embodiment includes a request receiving unit 402 , a randomizing unit 404 , a responding unit 406 , and a verifying unit 408 .

요청 수신부(402)는 클라이언트(110)로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신한다.The request receiving unit 402 receives a script request for logging in or moving a web page from the client 110 .

랜덤화부(404)는 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성한다. The randomizer 404 generates an obfuscated script after randomizing a parameter key, a parameter value, and a Uniform Resource Locator (URL) for the login or web page movement.

구체적으로, 랜덤화부(404)는 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하여 상기 랜덤한 URL이 생성되도록 스크립트를 랜덤화할 수 있다. 또한, 랜덤화부(404)는 치환된 상기 파라미터 키 및 상기 파라미터 값의 반전 여부를 랜덤하게 선택하고, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 스크립트를 랜덤화할 수 있다. 이후, 랜덤화부(404)는 위와 같이 랜덤화된 스크립트를 난독화하여 난독화된 스크립트를 생성할 수 있다. Specifically, the randomizer 404 substitutes the parameter key and the parameter value, respectively, sets an initial vector of a hash function at random, and hashes the substituted parameter key and the parameter value with the hash function to generate the random The script can be randomized so that only one URL is generated. In addition, the randomization unit 404 randomly selects whether the substituted parameter key and the parameter value are inverted, and randomly assigns a dummy value at any point of the substituted parameter key and the parameter value or the inverted value. In addition, the script can be randomized so that the random URL is generated. Thereafter, the randomizer 404 may obfuscate the randomized script as described above to generate the obfuscated script.

또한, 랜덤화부(404)는 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장한다. 이때, 랜덤화부(404)는 서로 다른 N개의 상기 난독화된 스크립트를 생성할 수 있으며, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다. 여기서, 상기 매핑 테이블에 저장되는 정보들은 예를 들어, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함할 수 있다.Also, the randomizer 404 stores information included in the obfuscated script in a set mapping table. In this case, the randomizer 404 may generate N different obfuscated scripts, and store information included in each of the obfuscated scripts in the mapping table for each obfuscated script. Here, the information stored in the mapping table may include, for example, one or more of the parameter key and information about before and after substitution of the parameter value, the initial vector, whether the inversion is performed, whether the dummy value is added, and a position. can

응답부(406)는 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트(110)로 전송한다. 이때, 응답부(406)는 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트(110)로 전송하고, 클라이언트(110)로 전송한 난독화된 스크립트가 몇 번째 스크립트인지에 관한 정보를 세션(session)에 기록할 수 있다.The response unit 406 transmits the obfuscated script to the client 110 in response to the script request. At this time, the response unit 406 transmits one of the N obfuscated scripts to the client 110 in response to the request for the script, and the obfuscated script transmitted to the client 110 is the second script. Recognition information may be recorded in a session.

검증부(408)는 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 클라이언트(110)로부터 상기 랜덤한 URL의 요청을 수신하고, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 요청을 검증한다. 구체적으로, 검증부(408)는 세션(session)에 저장된 정보를 통해 클라이언트(110)로부터 수신된 요청이 n번째 난독화된 스크립트를 통해 생성된 요청임을 확인하고, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증할 수 있다. 또한, 검증부(408)는 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 요청을 검증할 수 있다.As the random URL is generated from the obfuscated script, the verification unit 408 receives the request of the random URL from the client 110 and verifies the request based on information stored in the mapping table. Specifically, the verification unit 408 confirms that the request received from the client 110 is a request generated through the nth obfuscated script through the information stored in the session, and refers to the mapping table to determine the random One URL can be validated. Also, the verification unit 408 may verify the request by extracting the parameter key and the parameter value based on the information stored in the mapping table.

도 5는 예시적인 실시예에 따른 랜덤화부(404)에서 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 과정을 나타낸 예시이다.5 is an example illustrating a process of generating an obfuscated script in the randomizer 404 according to an exemplary embodiment and storing information included in the obfuscated script in a set mapping table.

도 5를 참조하면, 랜덤화부(404)는 기존 로그인용 스크립트에서 파라미터 키, 파라미터 값 및 URL을 랜덤화한 후 난독화된 스크립트를 N개 생성하고, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다. Referring to FIG. 5 , the randomizer 404 randomizes parameter keys, parameter values, and URLs in the existing login script, then generates N obfuscated scripts, and divides the information included in each obfuscated script. Each obfuscated script may be stored in the mapping table.

도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.6 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 서버(120), 또는 서버(120)에 포함되는 하나 이상의 컴포넌트일 수 있다.The illustrated computing environment 10 includes a computing device 12 . In one embodiment, computing device 12 may be server 120 , or one or more components included in server 120 .

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one processor 14 , computer readable storage medium 16 , and communication bus 18 . The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiments discussed above. For example, the processor 14 may execute one or more programs stored in the computer-readable storage medium 16 . The one or more programs may include one or more computer-executable instructions that, when executed by the processor 14, configure the computing device 12 to perform operations in accordance with the exemplary embodiment. can be

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. The program 20 stored in the computer readable storage medium 16 includes a set of instructions executable by the processor 14 . In one embodiment, computer-readable storage medium 16 includes memory (volatile memory, such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash It may be memory devices, other forms of storage medium accessed by computing device 12 and capable of storing desired information, or a suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12 , including processor 14 and computer readable storage medium 16 .

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . The input/output interface 22 and the network communication interface 26 are coupled to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output device 24 may include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or imaging devices. input devices, and/or output devices such as display devices, printers, speakers and/or network cards. The exemplary input/output device 24 may be included in the computing device 12 as a component constituting the computing device 12 , and may be connected to the computing device 12 as a separate device distinct from the computing device 12 . may be

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Although the present invention has been described in detail through representative embodiments above, those of ordinary skill in the art to which the present invention pertains can make various modifications to the above-described embodiments without departing from the scope of the present invention. will understand Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the claims described below as well as the claims and equivalents.

10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
110 : 클라이언트
120 : 서버
130 : 자동화된 프로그램
402 : 요청 수신부
404 : 랜덤화부
406 : 응답부
408 : 검증부
10: Computing Environment
12: computing device
14: processor
16: computer-readable storage medium
18: communication bus
20: Program
22: input/output interface
24: input/output device
26: network communication interface
110 : client
120 : server
130: automated program
402: request receiving unit
404: randomization unit
406: response part
408: verification unit

Claims (14)

요청 수신부에서, 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 단계;
랜덤화부에서, 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하는 단계;
상기 랜덤화부에서, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 단계;
응답부에서, 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계;
검증부에서, 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하는 단계; 및
상기 검증부에서, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 단계를 포함하며,
상기 난독화된 스크립트를 생성하는 단계는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하되,
치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하거나, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
Receiving, in the request receiving unit, a script request for login or web page movement from a client;
generating an obfuscated script after randomizing, in the randomizer, a parameter key, a parameter value, and a Uniform Resource Locator (URL) for logging in or moving a web page;
storing, in the randomizer, information included in the obfuscated script in a set mapping table;
transmitting, in a response unit, the obfuscated script to the client in response to the request for the script;
receiving, in a verification unit, a request for the random URL from the client as a random URL is generated from the obfuscated script; and
and verifying, in the verification unit, the request of the random URL based on the information stored in the mapping table,
The generating of the obfuscated script may include permuting the parameter key and the parameter value, randomly setting an initial vector of a hash function, and then performing the hash function with the substituted parameter key and the parameter value. Hash it as a function,
Randomly select whether to reverse the substituted parameter key and the parameter value, or randomly add a dummy value at any point of the substituted parameter key and the parameter value or the inverted value to generate the obfuscated script so that the random URL is generated, an automatic login prevention method using a random script.
청구항 1에 있어서,
상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계 이전에,
상기 랜덤화부에서, 서로 다른 N개의 상기 난독화된 스크립트를 생성하는 단계; 및
상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장하는 단계를 더 포함하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
The method according to claim 1,
Before sending the obfuscated script to the client,
generating, in the randomizer, N different obfuscated scripts; and
The method of preventing automatic login using a random script, further comprising the step of storing information included in each of the obfuscated scripts in the mapping table for each obfuscated script.
청구항 2에 있어서,
상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
3. The method according to claim 2,
In the step of transmitting the obfuscated script to the client, one of the N obfuscated scripts is transmitted to the client in response to the request of the script, an automatic login prevention method using a random script.
삭제delete 삭제delete 청구항 1에 있어서,
상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
The method according to claim 1,
The information stored in the mapping table includes one or more of the parameter key and information about before and after substitution of the parameter value, the initial vector, whether the inversion is performed, whether or not the dummy value is added, and a position. How to prevent login.
청구항 6에 있어서,
상기 랜덤한 URL의 요청을 검증하는 단계는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 요청을 검증하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
7. The method of claim 6,
The verifying of the request of the random URL may include verifying the validity of the random URL by referring to the mapping table, and verifying the request by extracting the parameter key and the parameter value based on information stored in the mapping table. How to prevent automatic login using random script.
클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 요청 수신부;
상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 랜덤화부;
상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 응답부; 및
상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하고, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 검증부를 포함하며,
상기 랜덤화부는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하되,
치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하거나, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성하는, 서버.
a request receiving unit for receiving a script request for logging in or moving a web page from a client;
After randomizing a parameter key, parameter value, and URL (Uniform Resource Locator) for the login or web page movement, an obfuscated script is generated, and the obfuscated script is included in the a randomizer for storing information in a set mapping table;
a response unit transmitting the obfuscated script to the client in response to the script request; and
and a verification unit that receives the request of the random URL from the client as a random URL is generated from the obfuscated script, and verifies the request of the random URL based on information stored in the mapping table,
The randomizer replaces each of the parameter key and the parameter value, randomly sets an initial vector of a hash function, and then hashes the substituted parameter key and the parameter value with the hash function,
Randomly select whether to reverse the substituted parameter key and the parameter value, or randomly add a dummy value at any point of the substituted parameter key and the parameter value or the inverted value To generate the obfuscated script so that the random URL is generated, the server.
청구항 8에 있어서,
상기 랜덤화부는, 서로 다른 N개의 상기 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장하는, 서버.
9. The method of claim 8,
The randomizer generates N different obfuscated scripts, and stores information included in each of the obfuscated scripts in the mapping table for each obfuscated script.
청구항 9에 있어서,
상기 응답부는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송하는, 서버.
10. The method of claim 9,
The response unit, in response to the script request, transmitting one of the N obfuscated scripts to the client, the server.
삭제delete 삭제delete 청구항 8에 있어서,
상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함하는, 서버.
9. The method of claim 8,
The information stored in the mapping table includes one or more of the parameter key and information about before and after substitution of the parameter value, the initial vector, whether the inversion is performed, whether the dummy value is added, and a position.
청구항 13에 있어서,
상기 검증부는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 랜덤한 URL의 요청을 검증하는, 서버.
14. The method of claim 13,
The verification unit verifies validity of the random URL with reference to the mapping table, and extracts the parameter key and the parameter value based on information stored in the mapping table to verify the request of the random URL.
KR1020200012457A 2020-02-03 2020-02-03 Method for preventing automatic login using random script, and server for executing the same KR102277870B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200012457A KR102277870B1 (en) 2020-02-03 2020-02-03 Method for preventing automatic login using random script, and server for executing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200012457A KR102277870B1 (en) 2020-02-03 2020-02-03 Method for preventing automatic login using random script, and server for executing the same

Publications (1)

Publication Number Publication Date
KR102277870B1 true KR102277870B1 (en) 2021-07-14

Family

ID=76863073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200012457A KR102277870B1 (en) 2020-02-03 2020-02-03 Method for preventing automatic login using random script, and server for executing the same

Country Status (1)

Country Link
KR (1) KR102277870B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102637045B1 (en) * 2023-11-01 2024-02-15 주식회사 넷스루 Method for supporting data collection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328118B1 (en) * 2013-07-25 2013-11-13 주식회사 베이스인 네트웍스 Method for providing log in service based on passdata
KR20140011542A (en) * 2012-07-03 2014-01-29 한국과학기술원 Log in system and method
KR20140061788A (en) * 2012-11-14 2014-05-22 주식회사 예티소프트 Security metohd and server using program code guaranteed integrity
KR20150085716A (en) 2014-01-16 2015-07-24 이주현 Setup Method for Web Scraping Data Extraction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140011542A (en) * 2012-07-03 2014-01-29 한국과학기술원 Log in system and method
KR20140061788A (en) * 2012-11-14 2014-05-22 주식회사 예티소프트 Security metohd and server using program code guaranteed integrity
KR101328118B1 (en) * 2013-07-25 2013-11-13 주식회사 베이스인 네트웍스 Method for providing log in service based on passdata
KR20150085716A (en) 2014-01-16 2015-07-24 이주현 Setup Method for Web Scraping Data Extraction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102637045B1 (en) * 2023-11-01 2024-02-15 주식회사 넷스루 Method for supporting data collection

Similar Documents

Publication Publication Date Title
US11196746B2 (en) Whitelisting of trusted accessors to restricted web pages
US11757641B2 (en) Decentralized data authentication
US9411958B2 (en) Polymorphic treatment of data entered at clients
US10223524B1 (en) Compromised authentication information clearing house
US9838384B1 (en) Password-based fraud detection
US10122830B2 (en) Validation associated with a form
US11388194B2 (en) Identity verification and verifying device
CN105610810A (en) Data processing method, client and servers
US10176318B1 (en) Authentication information update based on fraud detection
CN111355726B (en) Identity authorization login method and device, electronic equipment and storage medium
US20190073475A1 (en) Ransomware Mitigation System
US20190273750A1 (en) Methods and apparatus for detecting remote control of a client device
US9769159B2 (en) Cookie optimization
Wu et al. A countermeasure to SQL injection attack for cloud environment
CN112131564A (en) Encrypted data communication method, apparatus, device, and medium
KR102279582B1 (en) Conferencing apparatus and method for switching access terminal thereof
CN113315746A (en) System and method for anonymously transmitting data from a user device to a recipient device
CN112118238A (en) Method, device, system, equipment and storage medium for authentication login
KR102277870B1 (en) Method for preventing automatic login using random script, and server for executing the same
EP3716564B1 (en) Method for resetting password, request terminal and check terminal
CN112836186A (en) Page control method and device
KR100838488B1 (en) The method and apparatus for protecting identification data using one-time and altered identification data generation mechanism, need not to install the program for preventing keystroke hacking on user computer
CN111368231B (en) Method and device for testing heterogeneous redundancy architecture website
US9485242B2 (en) Endpoint security screening
Toma A comparative study on the security of web content management systems

Legal Events

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