Have a Yoonvely Day :D

Sin prisa pero sin pausa

이상다반사

Cloud-Security Training

7/15

yoonvely 2021. 7. 18. 19:06
728x90

스크립트 언어 = Python

- 정적언어 : 객체지향? 모듈 형식으로 프로그램 만들어짐 -> 모듈을 합쳐서 프로그램 실행

프로그램을 실행하기 위해서 여러개의 파일이 필요

시작하는 기준점 필요 –> main 함수 프로그램 시작

 

- 동적언어 : 스크립트 언어 시작점이 없음

첫줄 시작 ~ 스크립트 기반 언어이기 때문에 정적언어처럼 시작함수를 지정할 수 있다.

main() 함수를 생성해서 사용한다.

 

해당되는 결과에 대한 인증 확인 후 값을 처리해서 결과를 가져옴

 

이렇게 코드를 짜면 어떤식으로 데이터를 가져올지 모름. 네이버가 주는대로 가져올 가능성

 

json파일 열어보면 날짜가 한국식으로 안나옴 정보 내용의 구성을 바꿔보자

GetDataChange함수 생성하기

 

디버깅하면 순서 뒤죽박죽이던 데이터를 GetDateChange()함수로 지정한 양식으로 저장 가능한 것이 보임 그러나 현재 while(73~75)에서 무한루프가 돌기 때문에 바꿔줄 것임.

 

DataLake - 원시데이터

정제 후 원하는 양식으로 저장된 데이터 원시데이터에서 순서 뒤죽박죽으로 저장된 데이터

 

그러나 정제 후 원하는 양식으로 저장된 데이터를 자세히 보면 순서가 아예 같지는 않다

==> 이건 출력, 즉 저장할 때 indentsort_keys에 따라 달라지는 것

 

이번엔 공공데이터를 가져와보도록 하겠다.

뼈대가 되는 코드
여기까지는 같음 Naver id, pw 부분만 삭제됨
공공데이터는 id,pw따로 없이 Endpoint 이용
인증키 기반으로 인증키 넣기

openAPI호출 버튼 활성화 -> 누르면

 

Request URL 값을 줌 이걸 기반으로 코딩할 것

 

네이버 코드를 최대한 재활용

 

DB -> data ==> , 컬럼 ==> address, centerName..., ==> 광주광역시... 코로나19 호남권역 예방접종센터... 중앙/권역...이부분

 


API를 사용하지 않고 웹사이트 데이터를 긁어올 방법은 없을까?

사진은 반정형데이터나 비정형데이터일 수도 있다.

원래는 저작권 때문에 사진을 그냥 가져오면 안된다.

 

네이버 뿐만 아니라 개인 인스타그램 url 사진 등(저작권 위배여부 따져야 함) 얼마든지 가져올 수 있다.

 

파싱을 해볼 것이다.

 

보안이 적용되지 않은 사이트에서 이 코드를 사용할 경우 문서정보를 가져올 수 있음

 

인스타그램은 보안으로 막혀있어 내 페이스북 페이지 html 파싱을 해보았다.

 

https://developers.facebook.com/docs/graph-api/using-graph-api

세부사항은 참고해서 해보자

 

OAuth web 회원가입

              -> google / naver / kakao 계정 회원가입

 

사용자들을 위해 인증과 권한을 쉽게 하기 위해 탄생

 

ex) Login -> web 쇼핑 -> 다른 web 이동 -> 돌아가기(web 쇼핑)

쿠키, 세션으로 일정 시간 전에는 로그인 유지, 일정 시간 지나면 로그아웃

 

2010년에 OAuth 1.0 (이젠 사용하지 x)

지금은 2.0 사용 (새롭게 탄생, 1.0과 호환 안됨)

 

하나의 웹사이트 아이디로 다른 웹사이트 가입할 수 있는 기술

 

pip install python-oauth2 >> oauth2 설치

 

내일은 twitter 코드, naver api, graph (R 쪼금 다뤄볼지도)를 작성할 예정

 

sso

single sign on

계정을 개통할 때 필요한 건 oauth

sso는 로그인.

네이버에서 로그인을 했는데 카카오에 웹사이트로 이동하면 별도로 로그인 하지 않는 것.

 

oauth는 정보를 주고받는 것

네이버로 로그인하면 카카오 웹사이트로 이동가능, 다음에 카카오 채팅을 할 수 있는데 카카오 쇼핑은 할 수 없음

sso를 처리해주는 기술이 oauth

oAuth(open standard for authorization)

 

사용자는 한번의 인증절차로 다른 웹서비스를 이용할때 아이디/패스워드의 개인정보를 전송하지 않고도 자신의 접근 또는 기타 권한을 부여할 수 있도록 하는것을 말한다.

예를들어 페이스북 아이디로 쇼핑몰사이트를 이용하게 되는 경우 사용자는 페이스북에 로그인 하고 쇼핑몰 사이트에 접속하면 쇼핑몰 사이트에서는 페이스북으로 사용자 접근권한 요청을 보낸다. 그러면 사용자는 페이스북의 화면으로 해당쇼핑몰에서 접근하려고 하니 허용하시겠습니까 라는 메세지의 화면을 보게 되고 사용자가 승인 할경우 쇼핑몰을 이용할 수 있게 된다.

이처럼 사용자는 쇼핑몰에는 회원가입 또는 개인정보를 따로 저장하지 않아도 페이스북 로그인 하나만으로도 이용할 수 있게 되는데 이런 방식이 가능한것은 oAuth인증방식 때문이다.

 

 

SSO(single sign on)

 

한번 로그인 하면 여러도메인에서 더이상의 로그인 없이 이용할 수 있는것을 말한다.

예를들어 A사이트와 B사이트가 통합 로그인을 제공할 경우 사용자는 A사이트에서만 로그인을 해도 B사이트를 이용할 수 있게 된다.

B에서 로그인 했을경우도 마찬가지이다.

sso는 서비스의 개념이고 oauth는 인증 프로토콜이라고 이해하면 될듯하다.

또한 ssooAuth방식을 이용하여 설계 되어질수도 있다.

'Cloud-Security Training' 카테고리의 다른 글

module project  (0) 2021.07.23
json 파일 합치기  (0) 2021.07.18
7/16  (0) 2021.07.18
7/14  (0) 2021.07.18
7/13  (0) 2021.07.18