2020년 3월 25일 보안정보 스크래핑

2020년 3월 25일 보안정보 스크래핑 3월 25일 보안정보 스크래핑 ==================================================================== + 주요 취약점 - 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 외 1건 1. 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 최근 OpenSMTPD* 취약점이 발견되는 등 메일전송 프로토콜에서 원격 명령어 실행이 가능하여 주의를 권고함 공격자는 취약점을 악용하여 피해를 발생시킬 수 있으므로, 해결방안을 참고하여 조치 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35302 2. Django 제품 SQL Injection 취약점 보안 업데이트 권고 최근 Django*에서 SQL Injection취약점(CVE-2020-9402)을 악용할 수 있는 개념증명코드(Proof of concept, PoC)가 인터넷상에 공개되어 사용자의 보안 업데이트 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35301 ==================================================================== + 취약점 - Apple Safari 취약점 1. Apple Safari 취약점 Apple Safari security bypass CVE-2020-3885 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178339 Apple Safari security bypass CVE-2020-3887 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178338 Apple Safari inform...

Django-OAuth

Django-OAuth

OAuth를 이용하여 Social Login을 붙여 가입없이 서비스를 이용할 수 있다.

Django에서 이러한 Social Login을 이용하기 위한 라이브러리르 중 django-allauth package를 이용하여 구현해보려고 한다.

Installation

django-allauth

pip install django-allauth

django-allauth 패키지를 설치해준다.

settings.py

# Specify the context processors as follows: TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ # Already defined Django-related contexts here # `allauth` needs this from django 'django.template.context_processors.request', ], }, }, ]

OPTIONS 에 'django.template.context_processors.request', 를 추가해준다.

AUTHENTICATION_BACKENDS 를 추가해준다.

AUTHENTICATION_BACKENDS = ( # Needed to login by username in Django admin, regardless of `allauth` 'django.contrib.auth.backends.ModelBackend', # `allauth` specific authentication methods, such as login by e-mail 'allauth.account.auth_backends.AuthenticationBackend', )

INSTALLED_APP에 추가된 app을 입력한다.

allauth.socialaccount.providers는 내가 원하는 providers를 넣어준다.

나는 facebook을 이용해서 할 예정이다.

INSTALLED_APPS = ( ... 'django.contirb.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', # include the providers you want 'allauth.socialaccount.providers.facebook',

SITE_ID = 1 도 추가해준다.

SITE_ID = 1

urls.py

path('accounts/', include('allauth.urls')),

urlpatterns에 추가해준다.

Provider

settings.py

맨 아래에 SOCIALACOUNT_PROVIDERS 를 추가해준다.

SOCIALACCOUNT_PROVIDERS = { 'facebook': { 'METHOD': 'oauth2', 'SDK_URL': '//connect.facebook.net/{locale}/sdk.js', 'SCOPE': ['email', 'public_profile', 'user_friends'], 'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 'INIT_PARAMS': {'cookie': True}, 'FIELDS': [ 'id', 'email', 'name', 'first_name', 'last_name', 'verified', 'locale', 'timezone', 'link', 'gender', 'updated_time', ], 'EXCHANGE_TOKEN': True, 'LOCALE_FUNC': lambda request: 'ko_KR', 'VERIFIED_EMAIL': False, 'VERSION': 'v2.12', } }

METHOD 는 js_sdk 와 oauth2 가 가능한데 기본 설정은 oauth2 이다.

는 와 가 가능한데 기본 설정은 이다. VERSION 은 문서에 2.12로 나와있지만 최신 버전은 아니다. ( 도큐먼트에 나온대로 구현해보겠다. )

Facebook for developer

Facebook for developers 에 접속하여 가입, 앱 등록한다.

앱을 등록하게 되면 유효한 OAuth 리디렉션 URI 를 추가해 주어야 사용할 수 있다.

이때, http://로 사용하던 것을 https://로 바꿔주어야 한다.

그러기 위해 OPENSSL, STUNNEL을 이용하여 key와 cert를 받고 ssl server로 실행해준다. ( 다음 게시물로 올리겠다. )

settings.py

sslserver 를 사용하기 위해 라이브러리를 설치해준다.

pip install sslserver

INSTALLED_APP 에 sslserver 를 추가해준다.

facebook 로그인을 통하여 로그인 했을 때의 리다이렉트 하는 곳을 main화면으로 설정해 주기 위해 settings.py에 아래와 같이 설정해준다.

LOGIN_REDIRECT_URL = '/'

login.html

{% load socialaccount %} hello world {% if user.is_authenticated %} {{ user }}님이 로그인중입니다. {% for account in user.socialaccount_set.all %} {% comment %} show avatar from url {% endcomment %} {{ account.provider }} account data UID: {{ account.uid }} Username: {{ account.extra_data.username }} First Name: {{ account.extra_data.first_name }} Last Name: {{ account.extra_data.last_name }} Dashboard Link: {{ account.extra_data.link }} {% empty %} you haven't any social account please {% endfor %} {% endif %} 로그인 페이스북 로그인 로그아웃 회원가입

html화면을 만들어서 페이스북 로그인을 확인할 수 있다.

from http://sssunda.tistory.com/216 by ccl(A)

댓글

이 블로그의 인기 게시물

엑스브레인(XBrain) 기업 정보

django 설치 방법

[aws] deploy Angular app with s3 | AWS S3로 angular 앱 배포하기