KR101978898B1 - 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법 - Google Patents

유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법 Download PDF

Info

Publication number
KR101978898B1
KR101978898B1 KR1020180046703A KR20180046703A KR101978898B1 KR 101978898 B1 KR101978898 B1 KR 101978898B1 KR 1020180046703 A KR1020180046703 A KR 1020180046703A KR 20180046703 A KR20180046703 A KR 20180046703A KR 101978898 B1 KR101978898 B1 KR 101978898B1
Authority
KR
South Korea
Prior art keywords
user device
unique identifier
puid
identification information
user
Prior art date
Application number
KR1020180046703A
Other languages
English (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 KR1020180046703A priority Critical patent/KR101978898B1/ko
Application granted granted Critical
Publication of KR101978898B1 publication Critical patent/KR101978898B1/ko

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • 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
    • 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

Abstract

본 발명에 따른 실시예는 웹 서버에 접속하는 복 수개의 유저 디바이스(User Device)와, 웹 서버에 접속된 유저 디바이스(User Device)들에 고유 식별정보를 생성 및 설정하고, 유저 디바이스(User Device)들의 사용자 요청(User Request) 마다 고유 식별정보를 수집 및 확인하여 이상 행위를 감시하여 차단하는 모니터링 서버를 포함하고, 고유 식별정보는 유저 디바이스(User Device)의 브라우저(Browser), 시스템, 플러그인, 네트워크, 언어, 스크린의 특성값중 적어도 하나가 포함되어 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장되는 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템을 제공할 수 있다.

Description

유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법{WEB SCRAPING PREVENTION SYSTEM USING CHARACTERISTIC VALUE OF USER DEVICE AND THE METHOD THEREOF}
본 발명은 유저 디바이스(User Device)의 특성값을 이용한 웹 스크래핑(Web Scraping) 방지 시스템 및 그 방법에 관한 것이다.
웹 스크래핑(Web Scraping)은 프로그램에 의해 자동으로 웹 시스템에 접속하여 데이터를 화면에 나타낸 후, 필요한 자료를 추출하여 가져오는 기술이나 프로그램을 말한다.
이렇게 웹 스크래핑(Web Scraping)에 의해 추출된 데이터들은 다른 프로그램이나 데이터베이스에 저장하였다가 필요할 때, 수시로 열람하거나 사용 가능하고, 이렇게 추출된 데이터들을 이용하여 비교분석 자료로도 활용된다.
이와 같은 웹 스크래핑(Web Scraping) 프로그램들은 웹 사이트에서 필요한 정보를 수집해오는 기술과, 일정한 포맷으로 변환하는 기술과 스크래핑 구동 기술이 그 핵심이며, 이러한 웹 스크래핑(Web Scraping) 프로그램들은 서버에 설치되어 구동되거나 클라이언트에 설치되어 구동되고, 또는 서버와 클라이언트에 혼합 설치되어 구동되는 방식을 취한다.
웹 스크래핑(Web Scraping) 기술은 주로 개인의 금융자산에 대한 정보를 일괄로 조회하거나 거래 내역 등을 통합하여 관리하는 데에 사용되거나, 또는 여행사, 항공사, 호텔 및 물류 서비스, 날씨, 뉴스 등의 정보들을 수집하는 용도로도 활용된다.
하지만, 이와 같은 웹 스크래핑(Web Scraping)은 최근 온라인서비스를 제공하고 있는 기업들로부터 기업정보를 유출시킬 수 있는 수단이 되고 있다.
예를 들면, 웹 스크래핑(Web Scraping) 기술은 쇼핑몰에서 경쟁사가 판매하는 제품의 가격정보, 금융 기관의 가격정보(예를 들면, 대출금리, 보험가입정보)를 수집하는 용도로 사용되고 있고, 웹 서버의 접속량을 증가시킬 수 있어 해당 서버의 서비스 중단 및 지연을 발생시킬 수 있다. 즉, 종래에는 웹 스크래핑(Web Scraping)에 의한 기업의 피해가 증가하고 있는 실정이다.
따라서 종래의 온라인 서비스 기업에서는 위와 같은 웹 스크래핑(Web Scraping)을 방지하기 위한 기술이 제안되고 있으나, 1개의 IP에서 다수의 로그인 시도 및 HTTP 헤더의 User-Agent 확인을 통하여 웹 스크래핑(Web Scraping)을 방지하고 있으나, 우회하여 접속 가능한 기술이 개발됨에 따라 실질적으로 웹 스크래핑(Web Scraping)을 방지함에 한계가 있었다.
한국 등록특허공보 제10-1569984호(2015.11.11)
그러므로 본 발명은 종래의 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 웹 스크래핑(Web Scraping)을 방지하여 기업정보의 유출, 접속량 증가로 인한 서비스 중단 및 지연 발생을 방지할 수 있는 유저 디바이스(User Device)의 특성값을 이용한 웹 스크래핑(Web Scraping) 방지 시스템 및 그 방법을 제공함에 있다.
본 발명은 상기와 같은 목적을 달성하기 위하여 하기와 같은 실시예를 포함할 수 있다.
본 발명에 따른 실시예는 웹 서버에 접속하는 복 수개의 유저 디바이스(User Device)와, 웹 서버에 접속된 유저 디바이스(User Device)들에 고유 식별정보를 생성 및 설정하고, 유저 디바이스(User Device)들의 사용자 요청(User Request) 마다 고유 식별정보를 수집 및 확인하여 이상 행위를 감시하여 차단하는 모니터링 서버를 포함하고, 고유 식별정보는 유저 디바이스(User Device)의 브라우저(Browser), 시스템, 플러그인, 네트워크, 언어, 스크린의 특성값중 적어도 하나가 포함되어 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장되는 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템을 제공할 수 있다.
본 발명은 유저 디바이스의 특성값, 특히 브라우저의 특성값을 이용하여 웹 스크래핑을 방지함에 따라 우회 접속시에도 정확하게 감지할 수 있어 웹 스크래핑에 따른 접속 지연 및 허락되지 않은 정보 유출을 방지할 수 있는 효과가 있다.
도 1은 본 발명에 따른 유저 디바이스(User Device)의 특성값을 이용한 웹 스크래핑(Web Scraping) 방지 시스템을 도시한 블럭도이다.
도 2는 도 1의 모니터링 서버를 도시한 블럭도이다.
도 3a 및 도 3b는 본 발명에서 추출되는 디바이스의 특성값을 도시한 표이다.
도 4는 PUID 및 DFID의 생성 과정의 예를 간략 도시한 블럭도이다.
도 5는 본 발명에 따른 유저 디바이스(User Device)의 특성값을 이용한 웹 스크래핑(Web Scraping) 방지 시스템의 제어 방법을 도시한 순서도이다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정 해석되지 아니하며, 발명자는 그 사용자의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 “…부”, “모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 및/또는 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 설명되는 유저 디바이스(User Device)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기(smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 전자카드 등이 포함될 수 있다.
또한, 본 명세서에서 설명되는 외부 네트워크 환경은 와이파이, 블루투스, NFC 등을 포함하는 무선 통신을 의미하는 것으로, 와이파이 또는 블루투스는 SSID 및 세션 키(결제키, 지불키) 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있는 네트워크 환경을 말하는 것다.
이하, 본 발명의 실시 예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템을 도시한 블럭도이다.
도 1을 참조하면, 본 발명에 따른 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템은 유저 디바이스(User Device)(100)와, 웹 서버(200)와, 애플리케이션 서버(300)와, 데이터베이스 서버(400)와, 모니터링 서버(500)를 포함한다.
유저 디바이스(User Device)(100)는 웹 서버(200)에서 운용되는 웹페이지에 접속하여 다양한 정보를 요청 및 수신하는 장치로서 특정 브라우저에 의해 구동된다.
애플리케이션 서버(300)는 웹 서버(200)를 통하여 접속된 유저 디바이스(User Device)(100)에 요청된 애플리케이션을 제공한다. 예를 들면, 애플리케이션은 금융, 언어, 게임, 여행, 부동산 정보, 보안을 위하여 제공되는 알고리즘에 해당된다.
데이터베이스 서버(400)는 유저 디바이스의 접속 정보(아이디 및 패스워드, 브라우저 정보)와 차단 또는 블럭 설정된 유저 디바이스(User Device)(100)의 고유 식별정보가 저장된다.
모니터링 서버(500)는 유저 디바이스(User Device)(100)의 브라우저 특성값을 추출하여 각 유저 디바이스(User Device)(100)별 고유 식별 정보를 생성 및 부여하고, 각각의 유저 디바이스(User Device)(100)의 접속시마다 해당 고유 식별정보를 확인하여 해당 유저 디바이스(User Device)(100)의 접속 기록 및 수집 정보등을 추적하여 웹 스크래핑(Web Scraping) 여부를 감시한다. 이와 같은 모니터링 서버(500)는 도 2의 블럭도를 참조하여 상세히 설명한다.
도 2는 모니터링 서버를 도시한 블럭도이다.
도 2를 참조하면, 모니터링 서버(500)는 유저 디바이스(User Device)(100)의 웹 스크래핑(Web Scraping) 여부를 판단하여 차단 및/또는 감시 대상으로 설정하는 제어부(510)와, 유저 디바이스(User Device)(100) 내지 데이터베이스 서버(400)와 통신하는 통신부(520)와, 고유 식별정보 및 유저 디바이스의 추적 기록을 저장하는 데이터베이스(530)을 포함한다.
제어부(510)는 웹 서버(200)에 접속된 유저 디바이스(User Device)(100)의 특성값을 추출하는 특성값 추출모듈(511)과, 유저 디바이스(User Device)(100)의 고유 식별정보를 생성하는 디바이스 ID 생성모듈(512)(511)과, 유저 디바이스(User Device)(100)의 정보 수집 및 접속 기록을 추적하여 기록을 생성하는 디바이스 추적모듈(513)과, 유저 디바이스(User Device)(100)를 차단 또는 블럭 처리하는 블럭 처리모듈(514)과, 고유 식별정보를 암호화 및/또는 복호화시켜 유효값인지를 확인하는 보안모듈(515)과, 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 고유 식별정보를 저장하는 식별정보 저장모듈(516)을 포함한다.
특성값 추출모듈(511)은 웹 서버(200)에 접속된 유저 디바이스(User Device)(100)의 특성값을 추출한다.
여기서 특성값은 도 3a 및 도 3b를 참조하여 설명한다. 도 3a 및 도 3b를 참조하면, 특성값은 유저 디바이스(User Device)(100)의 스크린(Screen) 특성값과, 언어 특성값, 플러그인(Plug-in) 특성값, 네트워크(Network) 특성값, 브라우저(Browser) 특성값, 시스템(System) 특성값중 적어도 하나 이상을 포함한다.
구체적으로 설명하자면, 스크린 특성값은 가로 및/또는 세로 방향의 최대 화면 사이즈, 브라우저(Browser) 화면 사이즈, 상하좌우와 같은 현재의 창위치, 가로 및/또는 세로 방향의 외부 화면 사이즈, 가로 및/또는 세로 방향의 컨텐츠 화면 사이즈, 화면에 출력된 문서의 가로 및/또는 세로 방향의 사이즈, 색상 표현 깊이, 픽셀당 해상도, 현재 화면의 픽셀비율(줌), 폰트 기능(예를 들면, 부드러움 또는 거칠기) 사용 유무, 비트맵 버퍼 사이즈, 디바이스의 가로 및/또는 세로 DPI, 논리적 가로 DPI, 논리적 세로 DPI, 시스템 가로 DPI, 시스템 세로 DPI, 화면 갱신 시간중 적어도 하나 이상이 포함될 수 있다.
또한, 언어 특성 값은 사용자 언어(User Language), 브라우저 언어(Browser Language), 시스템언어(System Language) 중 적어도 하나 이상이 포함될 수 있다.
또한, 플러그인(Plug-in) 특성값은 설치된 플러그인 정보(IE, NPAPI)를 포함할 수 있다.
네트워크 특성값은 실제 IP(Internet Protocol), 프록시 사용 유무(UserProxy), 프록시 IP(Proxy IP)중 적어도 하나 이상을 포함할 수 있다.
또한, 브라우저(Browser) 특성값은 브라우저 정보(UserAgent), 브라우저 제공자(Vendor), 브라우저 제공자 ID(Vendor SubID), 빌드 아이디(Build ID), 브라우저명(AppName), 브라우저 코드명(AppCodeName), 브라우저 버전(AppVersion, AppMinorVersion), 브라우저 엔진명(Product), Java 사용 가능 유무(Java Enabled), Java script(Inline script, Same-Origin Script, Third-Part Scripts), 로컬 스토리지 사용 가능 유무(Local Storage), 사용자 언어(User Language), 브라우저 언어(Browser Language), 시스템 언어(System Language)중 적어도 하나가 포함될 수 있다.
또한 시스템 특성값은 플랫폼(Platfrom), CPU 타입, 언어, 표준 시간대, 폰트 해시(Fonts)중 적어도 하나가 포함될 수 있다.
디바이스 ID 생성모듈(512)은 위와 같은 특성값들중 적어도 2 이상을 추출하여 세션 아이디(Session ID)와 함께 암호화하되어 고유 식별정보를 생성한다. 이와 같은 고유 식별정보는 예를 들면, 유저 디바이스(User Device)(100)의 최초 접속시 쿠키 파라미터에 포함된 key 값을 기반으로 생성되는 PUID(Product Unique Identifier)와, 브라우저(Browser)에서 생성된 고유값(예를 들면, Session ID)을 기반으로 생성되는 DFID(Device Fingerprint UniQue Identifier)으로 구성될 수 있다.
PUID의 생성은 도 4를 참조하여 설명한다.
도 4는 고유 식별정보의 생성 과정의 예를 도시한 블럭도이다.
도 4를 참조하면, PUID는 최초 접속된 유저 디바이스(User Device)(100)의 쿠키를 통하여 추출된 특성값으로서 생성된다. 즉, 디바이스 ID 생성모듈(512)은 유저 디바이스(100)의 특성값들중, 예를 들면, Java Script의 key 값을 통하여 PUID key를 추출한다.
예를 들어 설명하자면, Java 사용 가능 유무(Java Enabled)에 따라 0, 1 의 값을 선택하고, Java script(Inline script, Same-Origin Script, Third-Part Scripts)등의 유무에 따라 각각 0과 1의 key 값과, 스크린의 높이나 폭과 같은 key 값을 조합하여 PUID를 생성한다.
따라서 PUID는 도면에 도시된 바와 같이, 11101204768의 key로 생성된다.
또한, 디바이스 ID 생성모듈(512)은 유저 디바이스(User Device)(100)에서 정보를 요청시마다 생성된 세션 아이디(Session ID)를 PUID와 결합하여 DFID(Device Fingerprint Unique Identifier)를 생성한다. 여기서 생성된 DFID는 후술되는 보안모듈(515)에 의해 암호화되어 데이터베이스(530)에 저장한다.
즉, 디바이스 ID 생성모듈(512)은 특성값 추출모듈(511)에서 추출된 유저 디바이스(User Device)(100)의 특성값을 이용하여 PUID를 생성하고, 이후 PUID와 세션 아이디(Session ID)를 결합시켜 DFID를 생성한다.
식별정보 저장모듈(516)은 암호화된 DFID를 쿠키(Cookie)로서 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체(예를 들면, Local Storage, Flash Stroage)에 저장한다. 즉, 식별정보 저장모듈(516)은 보안모듈(515)에 의하여 암호화된 PUID를 해당 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장되는 쿠키의 파라미터로서 설정한다.
보안모듈(515)은 DFID를 암호화 및 복호화한다. 즉, 보안모듈(515)은 디바이스 ID 생성모듈(512)에서 생성된 DFID 값을 암호화하여 식별정보 저장모듈(516)로 출력한다. 또한 보안모듈(515)은 접속된 유저 디바이스(User Device)(100)에 기록 및 저장된 쿠키를 확인 및 복호화하여 저장된 DFID와의 비교를 통하여 고유 식별 정보의 유효 여부를 판정한다.
디바이스 추적모듈(513)은 접속된 유저 디바이스(User Device)(100)의 행위를 감시하고, 데이터베이스(530)에 저장된다. 여기서 디바이스 추적모듈(513)은 고유 식별정보(예를 들면, 암호화된 DFID가 포함된 쿠키)를 통하여 해당 유저 디바이스(User Device)(100)가 웹 스크래핑(Web Scraping) 행위로 설정된 조건에 부합되는 지를 판단한다.
여기서 설정 조건은 즉시 차단 및 감시 대상, 정상 유저로 구분될 수 있으며, 각각의 설정 조건에 따른 판단결과는 고유 식별정보(예를 들면, DFID)로서 데이터베이스(530)에 저장된다.
블럭 처리모듈(514)은 디바이스 추적모듈(513)에서 설정된 고유 식별정보가 설정된 유저 디바이스(User Device)(100)의 접속을 차단한다.
본 발명은 위와 같은 구성을 포함하며, 이하에서는 유저 디바이스(User Device)(100)의 특성값을 이용한 웹 스크래핑(Web Scraping) 방지 시스템의 제어 방법을 첨부된 도면을 참조하여 설명한다.
도 5는 본 발명에 따른 유저 디바이스(User Device)(100)의 특성값을 이용한 웹 스크래핑(Web Scraping) 방지 시스템의 제어 방법을 도시한 순서도이다.
도 5를 참조하면, 본 발명은 유저 디바이스(User Device)(100)의 접속시에 고유 식별정보를 생성 및 저장하는 S100 단계와, 유저 디바이스(User Device)(100)의 사용자 요청시마다 PUID를 수집하여 이상 행위를 감지하여 차단하는 S200 단계를 포함한다.
S100 단계는 모니터링 서버(500)에서 유저 디바이스(User Device)(100)의 최초 접속시에 고유 식별정보를 생성 및 설정하는 단계이다. 여기서 고유 식별정보는 디바이스 ID 생성모듈(512)에서 특성값 추출모듈(511)로부터 추출된 유저 디바이스(User Device)(100)의 특성값(예를 들면, Java Script의 key값과 스크린의 key 값, 도 4 참조)으로 조합된 PUID key와 사용자 요청시마다 브라우저(Browser)에 포함된 세션 아이디(Session ID)를 결합시킨 DFID로 설정된다.
이와 같은 고유 식별정보는 보안모듈(515)에서 암호화되고, 식별정보 저장모듈(516)에서, 예를 들면, 쿠키 파라미터로서 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장된다.
바람직하게로는 보안모듈(515)은 해시 알고리즘(예를 들면, SHA-256 또는 SHA -512)을 통하여 PUID key와 세션 아이디(Session ID)가 결합된 DFID를 64 또는 128의 길이 크기를 갖도록 암호화시킨다.
S200 단계는 유저 디바이스(User Device)(100)의 생성 및 저장된 고유 식별정보와, 유저 디바이스(User Device)(100)의 사용자 요청시마다 수집된 DFID 및 세션 아이디(Session ID)를 비교하여 유효성 여부를 확인 후 차단 또는 이전 페이지로 전환시키는 단계이다. 즉, S200 단계는 브라우저(Browser)를 통한 정상적인 접근이 아닌 불법 프로그램에 의한 접속 여부를 확인하여 웹 스크래핑(Web Scraping)을 감시한다.
이와 같은 S200 단계는 도 6을 참조하여 설명한다.
도 6은 S200 단계를 도시한 순서도이다.
도 6을 참조하면, S200 단계는 접속된 유저 디바이스(User Device)(100)의 PUID key 값을 수집하는 S210 단계와, 수집된 PUID Key 값이 유효값인지를 판단하는 S220 단계와, PUID key가 유효하면 저장된 DFID 값의 매칭 여부를 판단하는 S230 단계와, PUID와 DFID의 매칭이 이루어지지 않으면 해당 유저 디바이스(User Device)(100)의 정보를 기록하는 S240 단계와, 해당 유저 디바이스(User Device)(100)의 접속을 차단하거나 이전 페이지로 전환시키는 S250 단계와, S230 단계에서 PUID 및 세션 아이디(Session ID)가 DFID와 매칭되면 접속을 허여하는 S260 단계를 포함한다.
S210 단계는 모니터링 서버(500)에서 웹 서버(200)에 접속된 유저 디바이스(User Device)(100)의 PUID key를 수집하는 단계이다. 여기서 PUID key는 상술한 바와 같이 유저 디바이스(User Device)(100)의 브라우저(Browser), 시스템, 언어, 플러그인, 네트워크, 스크린의 특성값중 선택된 적어도 하나 또는 2 이상의 조합을 통하여 추출되는 값이다.
따라서, 디바이스 추적모듈(513)은 접속된 유저 디바이스(User Device)(100)의 PUID key를 수집하고, 보안모듈(515)은 수집된 PUID key가 설정된 규칙(특성값, 예를 들면, Java Script key)에 따라 조합된 값인지를 확인하여 유효성 여부를 판단한다.
여기서 디바이스 추적모듈(513)은 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장된 쿠키 파라미터를 수집하고, 보안모듈(515)은 암호화된 쿠키 파라미터를 복호화하여 PUID key의 유효성 여부를 판단한다.
S220 단계는 모니터링 서버(500)에서 수집된 PUID key가 유효한 값이라면, DFID와 매칭되는 지를 판단하는 단계이다. 보안모듈(515)은 유저 디바이스(User Device)(100)의 쿠키 파라미터에서 추출된 PUID key 및 세션 아이디(Session ID)와 데이터베이스(530)에 저장된 PUID 값과 비교하여 매칭 여부를 판단한다.
예를 들면, 유저 디바이스(User Device)(100)의 사용자 요청시에 확인된 HTTP 정보에서 설정된 PUID key 및/또는 DFID가 포함되어 있지 않다면, 브라우저(Browser)를 통한 정상적인 접근이 아닌 것으로 판단할 수 있다.
따라서 보안모듈(515)은 데이터베이스(530)에 저장된 DFID값과, 유저 디바이스(User Device)(100)의 쿠키 파라미터에 포함된 PUID와 세션 아이디(Session ID)를 비교하여 매칭여부를 판단한다.
S230 단계는 S220 단계에서 데이터베이스(530)에 저장된 DFID와 유저 디바이스(User Device)(100)의 사용자 요청(User Request)시 마다 수집된 PUID key 및 세션 아이디(Session ID)가 상호 일치되면, S260 단계를 통하여 해당 유저 디바이스(User Device)(100)의 접속을 허여한다.
S240 단계는 모니터링 서버(500)에서 데이터베이스(530)에 저장된 DFID와 추출된 특성값에 포함된 DFID가 다르다면, 해당 유저 디바이스(User Device)(100)의 정보를 기록하는 단계이다. 디바이스 추적모듈(513)은 보안모듈(515)의 유효성 판단 결과를 확인하여 해당 유저 디바이스(User Device)(100)의 정보(예를 들면, 웹서버의 접속 아이디, 패스워드, IP 주소, 브라우저(Browser) 특성값, 디바이스 특성값)을 데이터베이스(530)에 저장한다.
또는, 디바이스 추적모듈(513)은 DFID의 유효성 판단 여부와 함께 설정된 조건에 따라 웹 스크래핑(Web Scraping) 여부를 판정함도 가능하다.
예를 들면, 디바이스 추적모듈(513)은 S100 단계를 통하여 각 유저 디바이스(User Device)(100) 별로 설정된 DFID 값을 통하여 해당 유저 디바이스(User Device)(100)의 행위(요청 정보, 로그인 횟수, 접속 웹페이지, 프로그램 수신 및 실행 여부, 다운로드 여부, 접속 시간)를 수집한다. 그리고 디바이스 추적모듈(513)은 각각의 설정 조건에 부합되는 유저 디바이스(User Device)(100)의 행위중에서 위 설정 조건들에 해당되는 행위가 감지되면, 웹 스크래핑(Web Scraping) 행위로 판단할 수 있다.
아울러 상술한 S210 단계 내지 S240 단계는 웹서버에 접속된 유저 디바이스(User Device)(100)의 사용자 요청(User Request)시마다 실시간으로 이루어질 수 있다.
S250 단계는 해당 유저 디바이스(User Device)(100)의 접속을 차단 또는 사용자 요청시에 이전 페이지로 전환시키는 단계이다. 블럭 처리모듈(514)은 디바이스 추적모듈(513) 또는 보안모듈(515)의 판단 결과에 따라서 해당 유저 디바이스(User Device)(100)의 접속을 차단한다. 또는 블럭 처리모듈(514)은 해당 유저 디바이스(User Device)(100)의 사용자 요청시에 해당 페이지로의 전환을 차단하고, 이전 페이지로 전환시킨다.
본 발명은 상술한 바와 같이, 유저 디바이스(User Device)(100)의 특성값에 따른 고유 식별정보를 생성하고, 이를 암호화하여 해당 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장 및 설정함에 따라 해당 유저 디바이스(User Device)(100)가 웹 스크래핑(Web Scraping) 행위를 감지할 수 있다.
그러므로 본 발명은 무분별한 웹 스크래핑(Web Scraping)으로 인한 정보의 유출이나, 접속의 지연과 같은 문제를 미연에 방지할 수 있다.
이상에서 설명된 본 발명은 예시적인 것에 불과하며, 본 발명이 속한 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 잘 알 수 있을 것이다.
그러므로 본 발명은 상기의 상세한 설명에서 언급되는 형태로만 한정되는 것은 아님을 잘 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 또한, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 그 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
100 : 유저 디바이스 200 : 웹 서버
300 : 애플리케이션 서버 400 ; 데이터베이스 서버
500 : 모니터링 서버 510 : 제어부
511 : 특성값 추출모듈 512 : 디바이스 ID 생성모듈
513 : 디바이스 추적모듈 514 : 블럭 처리모듈
515 : 보안모듈 516 : 식별정보 저장모듈
520 : 통신부 530 : 데이터베이스

Claims (7)

  1. 웹 서버(200)에 접속하는 복 수개의 유저 디바이스(User Device)(100);
    웹 서버(200)에 접속된 유저 디바이스(User Device)(100)들에 고유 식별정보를 생성 및 설정하고, 유저 디바이스(User Device)(100)들의 사용자 요청(User Request) 마다 고유 식별정보를 수집 및 확인하여 이상 행위를 감시하여 차단하는 모니터링 서버(500);를 포함하고,
    고유 식별정보는
    유저 디바이스(User Device)(100)의 브라우저(Browser), 시스템, 플러그인, 네트워크, 언어, 스크린의 특성값중 적어도 하나가 포함되어 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장되되,
    모니터링 서버(500)는
    웹 서버(200)에 접속된 유저 디바이스(User Device)(100)의 특성값을 추출하는 특성값 추출모듈(511);
    특성값 추출모듈(511)에서 추출된 특성값들중 적어도 2 이상으로 조합된 PUID(Product Unique Identifier)와, PUID(Product Unique Identifier)와 세션 아이디(Session ID)를 결합시켜 DFID(Device Fingerprint Unique Identifier)를 생성하는 디바이스 ID 생성모듈(512);
    유저 디바이스(User Device)(100)의 웹 서버(200)의 사용자 요청(User Request)시 마다 PUID(Product Unique Identifier) 및 세션 아이디(Session ID)를 실시간으로 수집하는 디바이스 추적모듈(513);
    디바이스 추적모듈(513)에서 수집된 PUID(Product Unique Identifier)와 설정된 PUID(Product Unique Identifier) key를 비교하여 유효 여부를 판단하는 보안모듈(515);
    보안모듈(515)의 유효 여부 판단 결과에 따라 해당 유저 디바이스(User Device)(100)의 접속을 차단 또는 이전 페이지로 전환시키는 블럭 처리모듈(514); 및
    디바이스 ID 생성모듈(512)에서 생성된 DFID(Device Fingerprint Unique Identifier) 값을 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장매체에 저장하는 식별정보 저장모듈(516);을 포함하는 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템.
  2. 청구항 1항에 있어서, 고유 식별정보는
    유저 디바이스(User Device)(100)의 브라우저(Browser), 시스템, 플러그인, 네트워크, 언어, 스크린의 특성값중 적어도 하나 또는 2 이상의 key 값으로 조합된 PUID(Product Unique Identifier)와, 세션 아이디(Session ID)가 결합된 DFID(Device Fingerprint Unique Identifier)인 것을 특징으로 하는 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템.
  3. 삭제
  4. 청구항 1항에 있어서, 식별정보 저장모듈(516)은
    DFID(Device Fingerprint Unique Identifier)를 유저 디바이스(User Device)(100)의 쿠키 파라미터로 설정하는 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템.
  5. a)모니터링 서버(500)에서 유저 디바이스(User Device)(100)의 웹 서버 접속시에 고유 식별정보를 생성하여 유저 디바이스(User Device)(100)의 브라우저(Browser) 또는 저장 매체에 저장하는 단계; 및
    b)유저 디바이스(User Device)(100)에서 사용자 요청(User Request)시에 고유 식별정보가 포함되어 있지 않으면 차단 또는 이전 페이지로 전환하는 단계를 포함하되,
    고유 식별정보는
    브라우저(Browser), 시스템, 플러그인, 네트워크, 언어, 스크린의 특성값중 적어도 하나 또는 2 이상이 조합된 PUID(Product Unique Identifier)와 세션 아이디(Session ID)가 결합된 DFID(Device Fingerprint Unique Identifier)이고,
    상기 a)단계는
    유저 디바이스(User Device)(100)에서 추출된 특성값을 통하여 생성된 PUID(Product Unique Identifier)와, 세션 아이디(Session ID)를 결합시켜 DFID(Device Fingerprint Unique Identifier)를 생성 및 암호화시키는 단계;를 포함하며,
    상기 b)단계는
    b-1)모니터링 서버(500)에서 웹 서버에 접속된 유저 디바이스(User Device)(100)의 쿠키에 포함된 PUID(Product Unique Identifier)를 수집하는 단계;
    b-2)PUID(Product Unique Identifier)가 유효한 값이라면, 세션 아이디(Session ID)와 PUID(Product Unique Identifier)가 결합된 값이 저장된 DFID(Device Fingerprint Unique Identifier)와 매칭되는 지를 판단하는 단계; 및
    b-3)데이터베이스(530)에 저장된 DFID(Device Fingerprint Unique Identifier)와 유저 디바이스(User Device)(100)의 쿠키 파라미터에 포함된 PUID(Product Unique Identifier) 및 세션 아이디(Session ID)가 매칭되지 않으면 유저 디바이스(User Device)(100)의 접속을 차단 또는 이전 페이지로 전환시키는 단계;를 포함하는 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템의 제어 방법.
  6. 삭제
  7. 삭제
KR1020180046703A 2018-04-23 2018-04-23 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법 KR101978898B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180046703A KR101978898B1 (ko) 2018-04-23 2018-04-23 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180046703A KR101978898B1 (ko) 2018-04-23 2018-04-23 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101978898B1 true KR101978898B1 (ko) 2019-05-15

Family

ID=66579264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180046703A KR101978898B1 (ko) 2018-04-23 2018-04-23 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101978898B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220144666A (ko) * 2021-04-20 2022-10-27 주식회사 스크립터스 웹 스크래핑 탐지 방법 및 이를 수행하기 위한 서버

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090107329A (ko) * 2008-04-08 2009-10-13 전철환 부정클릭 검출 웹브라우저 시스템, 그리고 부정클릭 검출웹브라우저를 이용한 부정클릭 검출 방법, 시스템, 및씨피씨 광고 서비스방법
KR101569984B1 (ko) 2014-01-16 2015-11-18 이주현 웹 스크래핑 추출 데이터 설정 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090107329A (ko) * 2008-04-08 2009-10-13 전철환 부정클릭 검출 웹브라우저 시스템, 그리고 부정클릭 검출웹브라우저를 이용한 부정클릭 검출 방법, 시스템, 및씨피씨 광고 서비스방법
KR101569984B1 (ko) 2014-01-16 2015-11-18 이주현 웹 스크래핑 추출 데이터 설정 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220144666A (ko) * 2021-04-20 2022-10-27 주식회사 스크립터스 웹 스크래핑 탐지 방법 및 이를 수행하기 위한 서버
KR102595303B1 (ko) * 2021-04-20 2023-10-27 주식회사 스크립터스 웹 스크래핑 탐지 방법 및 이를 수행하기 위한 서버

Similar Documents

Publication Publication Date Title
US11176573B2 (en) Authenticating users for accurate online audience measurement
CN112333198B (zh) 安全跨域登录方法、系统及服务器
US9954841B2 (en) Distinguish valid users from bots, OCRs and third party solvers when presenting CAPTCHA
US11128621B2 (en) Method and apparatus for accessing website
US8763101B2 (en) Multi-factor authentication using a unique identification header (UIDH)
EP2748781B1 (en) Multi-factor identity fingerprinting with user behavior
US8312521B2 (en) Biometric authenticaton system and method with vulnerability verification
US20150170072A1 (en) Systems and methods for managing network resource requests
US20170351852A1 (en) Identity authentication method, server, and storage medium
US20210194906A1 (en) Method and server for recognizing abnormal access behavior
US20210099431A1 (en) Synthetic identity and network egress for user privacy
US20110283174A1 (en) Optimizing Security Seals on Web Pages
US20140214671A1 (en) Server side mobile payment processing and authentication
WO2019123665A1 (ja) 照合サーバ、照合方法及びコンピュータプログラム
CN108154048B (zh) 资产信息处理方法和装置
JP2022546073A (ja) サードパーティ・クッキーなしにウェブ・パブリッシャー・インベントリをプログラマティック・エクスチェンジに接続すること
US20140351902A1 (en) Apparatus for verifying web site and method therefor
KR101978898B1 (ko) 유저 디바이스의 특성값을 이용한 웹 스크래핑 방지 시스템 및 그 방법
KR102164301B1 (ko) 서버기반의 간편 로그인 시스템 및 간편 로그인 방법
US20200036749A1 (en) Web browser incorporating social and community features
US20170359212A1 (en) Information processing method, device and computer readable storage medium
US9722998B1 (en) Authenticating a cookie with distinctive signals
KR101594315B1 (ko) 제3자 인증을 이용한 서비스 제공 방법 및 서버
KR102520329B1 (ko) 블록체인 기반 어뷰징 탐지 서비스 제공 시스템
KR20140023085A (ko) 사용자 인증 방법, 인증 서버 및 사용자 인증 시스템

Legal Events

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