스크래핑: 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 등 출력되는 데이터를 기반으로 정보를 추출하는 기술
동작 구조
- 고객의 통장 잔고 정보를 읽어 오려고 한다. 아래 과정은 스크래핑 엔진에서 자동으로 수행한다.
- 인터넷 뱅킹 사이트에 접속한다.
- 고객의 공인인증서 비밀번호를 입력하여 로그인 한다.
- 통장 잔고를 확인할 수 있는 계좌 정보 페이지로 이동한다.
- 화면에 보이는 계좌 정보들 중 "최종 잔액"이라는 메시지를 찾아 그 옆 셀에 있는 숫자를 읽는다.
동작 유형
- DOM 기반
- 만약 통장 잔고가 <span class='blance'>50,000</span> 와 같이 구분할 수 있는 태그안에 속해 있을 경우 태그를 기준으로 접근할 수 있다.
- table.info > tbody > tr > td.value > span.balance 와 같이 DOM 구조를 통해 찾아갈 수 있다.
- 텍스트 기반
- 만약 통장 잔고가 항상 '최종 잔액'이라는 글자의 옆 셀에 있다면 글자를 먼저 찾고 이를 기준으로 값을 찾을 수 있다.
- 위 예시는 이 텍스트 기반을 통한 스크래핑 예시이다.
문제점
- 패스워드 저장
- 인증을 자동으로 처리하기 위해선 고객의 패스워드를 온전히 저장 필요
- 암호화를 하더라도 양방향 암호화하여 저장한 후 필요 시 마다 복호화하여 사용해야 함
- 일반적으로 인증을 위한 패스워드는 일방향 암호화하여 저장하는데 비하여 상대적으로 매우 위험
- 개인정보의 안전성 확보조치 기준 위반 소지
- 프라이버시 침해
- 위의 예시에선 단지 고객의 통장 정보를 읽기 위해 고객의 모든 정보에 접근할 수 있는 인증 대행
- 고객은 통장 정보를 읽으라고 비밀번호를 제공했지만 실제론 그 외의 다른 모든 정보를 무단으로 남용할 가능성
- 가용성 부족
- 텍스트 기반이든 DOM 기반이든 인터넷 뱅킹 사이트에서 구조를 조금만 변경해도 접근 불가
- 새로운 텍스트 및 DOM 규칙을 찾아야 하므로 복구에 일정 시간 소요