스크래핑: Difference between revisions

From CS Wiki
(새 문서: 분류:디지털 서비스분류:인터넷 ;Scraping 타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정...)
 
No edit summary
Line 1: Line 1:
[[분류:디지털 서비스]][[분류:인터넷]]
[[분류:디지털 서비스]]
[[분류:인터넷]]
 
;Scraping
;Scraping
타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정보를 추출하는 기술
타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정보를 추출하는 기술


== 동작 구조 ==
==동작 구조==
 
;고객의 통장 잔고 정보를 읽어 오려고 한다. 아래 과정은 스크래핑 엔진에서 자동으로 수행한다.
;고객의 통장 잔고 정보를 읽어 오려고 한다. 아래 과정은 스크래핑 엔진에서 자동으로 수행한다.
# 인터넷 뱅킹 사이트에 접속한다.
# 고객의 공인인증서 비밀번호를 입력하여 로그인 한다.
# 통장 잔고를 확인할 수 있는 계좌 정보 페이지로 이동한다.
# 화면에 보이는 계좌 정보들 중 "최종 잔액"이라는 메시지를 찾아 그 옆 셀에 있는 숫자를 읽는다.


== 동작 유형 ==
#인터넷 뱅킹 사이트에 접속한다.
* DOM 기반
#고객의 공인인증서 비밀번호를 입력하여 로그인 한다.
** 만약 통장 잔고가 <nowiki><span class='blance'>50,000</span></nowiki> 와 같이 구분할 수 있는 태그안에 속해 있을 경우 태그를 기준으로 접근할 수 있다.
#통장 잔고를 확인할 수 있는 계좌 정보 페이지로 이동한다.
** table.info > tbody > tr > td.value > span.balance 와 같이 DOM 구조를 통해 찾아갈 수 있다.
#화면에 보이는 계좌 정보들 중 "최종 잔액"이라는 메시지를 찾아 그 옆 셀에 있는 숫자를 읽는다.
* 텍스트 기반
 
** 만약 통장 잔고가 항상 '최종 잔액'이라는 글자의 옆 셀에 있다면 글자를 먼저 찾고 이를 기준으로 값을 찾을 수 있다.
==동작 유형==
** 위 예시는 이 텍스트 기반을 통한 스크래핑 예시이다.
 
*'''DOM 기반'''
**만약 통장 잔고가 <nowiki><span class='blance'>50,000</span></nowiki> 와 같이 구분할 수 있는 태그안에 속해 있을 경우 태그를 기준으로 접근할 수 있다.
**table.info > tbody > tr > td.value > span.balance 와 같이 DOM 구조를 통해 찾아갈 수 있다.
*'''텍스트 기반'''
**만약 통장 잔고가 항상 '최종 잔액'이라는 글자의 옆 셀에 있다면 글자를 먼저 찾고 이를 기준으로 값을 찾을 수 있다.
**위 예시는 이 텍스트 기반을 통한 스크래핑 예시이다.
 
==문제점==


== 문제점 ==
*'''[[패스워드]] 저장'''
* [[패스워드]] 저장
**[[인증]]을 자동으로 처리하기 위해선 고객의 패스워드를 온전히 저장 필요
** [[인증]]을 자동으로 처리하기 위해선 고객의 패스워드를 온전히 저장 필요
**암호화를 하더라도 양방향 암호화하여 저장한 후 필요 시 마다 복호화하여 사용해야 함
** 암호화를 하더라도 양방향 암호화하여 저장한 후 필요 시 마다 복호화하여 사용해야 함
**일반적으로 인증을 위한 패스워드는 [[일방향 암호화]]하여 저장하는데 비하여 상대적으로 매우 위험
** 일반적으로 인증을 위한 패스워드는 [[일방향 암호화]]하여 저장하는데 비하여 상대적으로 매우 위험
**[[개인정보 보호법|개인정보의 안전성 확보조치 기준]] 위반 소지
** [[개인정보 보호법|개인정보의 안전성 확보조치 기준]] 위반 소지
*'''[[프라이버시]] 침해'''
* [[프라이버시]] 침해
**위의 예시에선 단지 고객의 통장 정보를 읽기 위해 고객의 모든 정보에 접근할 수 있는 인증 대행
** 위의 예시에선 단지 고객의 통장 정보를 읽기 위해 고객의 모든 정보에 접근할 수 있는 인증 대행
**고객은 통장 정보를 읽으라고 비밀번호를 제공했지만 실제론 그 외의 다른 모든 정보를 무단으로 남용할 가능성
** 고객은 나의 통장 정보를 읽으라고 했지만 실제론 그 외의 다른 모든 정보를 무단으로 읽을 가능성
*'''[[가용성]] 부족'''
* [[가용성]] 부족
**텍스트 기반이든 [[DOM]] 기반이든 인터넷 뱅킹 사이트에서 구조를 조금만 변경해도 접근 불가
** 텍스트 기반이든 DOM 기반이든 인터넷 뱅킹 사이트에서 구조를 조금만 변경해도 접근 불가
**새로운 텍스트 및 DOM 규칙을 찾아야 하므로 복구에 일정 시간 소요
** 새로운 텍스트 및 DOM 규칙을 찾아야 하므로 복구에 일정 시간 소요

Revision as of 09:22, 1 March 2020


Scraping

타겟 시스템에 접속하여 자동으로 인증을 수행하고 HTML 등 출력되는 데이터를 기반으로 정보를 추출하는 기술

동작 구조

고객의 통장 잔고 정보를 읽어 오려고 한다. 아래 과정은 스크래핑 엔진에서 자동으로 수행한다.
  1. 인터넷 뱅킹 사이트에 접속한다.
  2. 고객의 공인인증서 비밀번호를 입력하여 로그인 한다.
  3. 통장 잔고를 확인할 수 있는 계좌 정보 페이지로 이동한다.
  4. 화면에 보이는 계좌 정보들 중 "최종 잔액"이라는 메시지를 찾아 그 옆 셀에 있는 숫자를 읽는다.

동작 유형

  • DOM 기반
    • 만약 통장 잔고가 <span class='blance'>50,000</span> 와 같이 구분할 수 있는 태그안에 속해 있을 경우 태그를 기준으로 접근할 수 있다.
    • table.info > tbody > tr > td.value > span.balance 와 같이 DOM 구조를 통해 찾아갈 수 있다.
  • 텍스트 기반
    • 만약 통장 잔고가 항상 '최종 잔액'이라는 글자의 옆 셀에 있다면 글자를 먼저 찾고 이를 기준으로 값을 찾을 수 있다.
    • 위 예시는 이 텍스트 기반을 통한 스크래핑 예시이다.

문제점

  • 패스워드 저장
    • 인증을 자동으로 처리하기 위해선 고객의 패스워드를 온전히 저장 필요
    • 암호화를 하더라도 양방향 암호화하여 저장한 후 필요 시 마다 복호화하여 사용해야 함
    • 일반적으로 인증을 위한 패스워드는 일방향 암호화하여 저장하는데 비하여 상대적으로 매우 위험
    • 개인정보의 안전성 확보조치 기준 위반 소지
  • 프라이버시 침해
    • 위의 예시에선 단지 고객의 통장 정보를 읽기 위해 고객의 모든 정보에 접근할 수 있는 인증 대행
    • 고객은 통장 정보를 읽으라고 비밀번호를 제공했지만 실제론 그 외의 다른 모든 정보를 무단으로 남용할 가능성
  • 가용성 부족
    • 텍스트 기반이든 DOM 기반이든 인터넷 뱅킹 사이트에서 구조를 조금만 변경해도 접근 불가
    • 새로운 텍스트 및 DOM 규칙을 찾아야 하므로 복구에 일정 시간 소요