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...

2.Django 앱만들기

2.Django 앱만들기

앱 만들기

저번에 만들었던 프로젝트에 앱을 만들도록하겠습니다.

./mange.py startapp blog cs

이 명령어를 입력해 blog라는 앱을 만들었습니다.

ls 명령어로 확인해보면 blog가 생긴것을 볼수있습니다.

blog 디렉토리 안에 들어가보면

admin.py apps.py __init__.py migrations models.py tests.py views.py

파일들이 있습니다.

admin 사이트

앱을 만들었으니 앱을 관리할수있는 admin사이트에 접속해보도록 하겠습니다.

./manage.py createsuperuser cs

위 명령어로 계정을 만듭니다.

./manage.py runserver cs

위 명령어로 서버를 열고

127.0.0.1:8000/admin 또는 아이피주소:포트번호/admin 으로 접속을 합니다.

아까 생성했던 계정을 입력합니다.

로그인이 잘됩니다. 혹시 로그인이 안된다면 ./manage.py createsuperuser로 다시 만들어보세요.

아까 blog디렉토리 안에 있던 models.py에 field를 만들어서 admin사이트에서 관리를 할수있습니다.

models.py

https://docs.djangoproject.com/es/1.9/ref/models/fields/#model-field-types < 링크에 들어가보면 여러가지 field를 볼수있습니다.

간단하게 하나만 넣어보도록 하겠습니다.

링크에 보시면 EmailField가 있는데 이걸 넣어보겠습니다.

sudo nano blog/models.py cs

models.py를 수정합니다.

models.py 에

class MYMODEL(models.Model):

email = models.EmailField(blank = False, max_length=50)

이런 내용을 추가했습니다.

우선 MYMODEL이라는 이름의 클래스를 만들고 email을 추가했습니다.

EmailField를 넣고 blank = False, max_length=50라는 내용을 안에 추가햇습니다.

blank = False는 빈칸을 허용하지 않는것이고

max_length=50은 최대 문자 길이가 50이라는 것입니다.

**class를 추가하는 방법은 아까 링크에 있습니다.**

이제 admin사이트에서 볼수있도록 admin.py를 수정하겠습니다.

sudo nano blog/admin.py cs

admin.py에 내용을 추가합니다.

from .models import MYMODEL

admin.site.register(MYMODEL)

models.py을 불러오고 그안의 내가 만들었던 클래스 MYMODEL을 임포트합니다.

admin.site.register(MYMODEL)로 등록을 합니다.

이제 admin사이트에 들어가 봅시다.

추가가 된것을 볼수있습니다.

**참고로 장고서버는 서버를 켜놓은 상태에서 파일을 수정하면 수정되었을때 자동으로 변경됩니다.

오류가 나면 바로 확인하고 수정하는데 시간이 매우 단축됩니다.**

Add 버튼을 눌러 추가합니다 . 빈칸인 상태로 save를 하니까 오류가 뜹니다.

아까 blank = False가 잘 적용된것을 볼수있습니다.

이번엔 이메일을 입력하고 save해봅시다.

오류가 나네요.

오류내용은 데이터베이스 테이블이 없어서 저장이 안되기 때문에 그런것 같습니다.

데이터 베이스를 설정합시다.

데이터베이스 설정

우선

/myproject/myproject/settings.py 파일을 수정해야합니다.

sudo nano myproject/settings.py cs

nano 편집기를 사용하여 settings.py 파일을 열면 이런 내용들이있습니다.

첫번째로 프로젝트에 이런 앱이있다고 알려줘야합니다.

밑으로 내려가면 이런 내용이있습니다.

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

]

이 내용 맨밑에 'blog', 를 추가합니다.

두번째는

이 부분인데 기본 데이터베이스로 sqlite가 되있습니다.

개인용,공부 목적이라면 sqlite를 쓰는것을 추천합니다.

sqlite사용시 수정을 안하셔도됩니다.

하지만 다른 데이터베이스를 사용하시겠다면 수정해야합니다.

mysql 같은경우 다음과 같이 설정합니다.

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': '데이터베이스 이름',

'USER': 'mysql 계정',

'PASSWORD': 'mysql 계정의 비밀번호',

'HOST': '(빈칸으로 해도됨 빈칸일 경우 localhost)',

'POST': '(빈칸으로 해도됨 빈칸일 경우 3306)',

}

}

이렇게 수정하고 'NAME': '데이터베이스 이름', 여기서 설정한 데이터베이스 이름대로 mysql 에서 데이터베이스를 만들어줘야합니다.

저같은 경우에는 데이터베이스 이름을 blog로 했으니 mysql에 blog라는 데이터베이스를 추가하겠습니다.

**이름이 헷갈릴수있으니 데이터베이스 이름을 "blogdb" 이런 식으로 하시길 권장합니다.**

$ mysql -u root -p Enter password:******* mysql> create database blog; mysql> show databases; +--------------------+ Database | +--------------------+ information_schema | blog | mysql | performance_schema | +--------------------+ 5 rows in set (0.00 sec) mysql> cs

위와같이 데이터베이스를 생성합니다.

테이블 만들기

./manage.py makemigrations blog cs

위 명령어로 blog앱의 테이블을 만듭니다.

0001의 테이블이 만들어졌습니다.

./manage.py migrate cs

위 명령어로 테이블을 적용시킵니다.

모든게 잘 되었으면 다시 admin사이트에 가서 email을 추가해봅시다.

추가가 잘되었습니다.

앱을 만들고 기본 설정등 필요한것들을 다했습니다.

다음 글에는 좀더 깊이 들어가보도록 하겠습니다.

from http://mush-blog.tistory.com/4 by ccl(A) rewrite - 2020-03-07 06:20:57

댓글

이 블로그의 인기 게시물

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

django 설치 방법

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