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 투표 생성 // Django 튜토리얼 (2)

Django 투표 생성 // Django 튜토리얼 (2)

앞서 만들던 투표 만들기를 이어서 해보자.

먼저, DB 설치를 하자.

$ python manage.py migrate

OK 문구들이 많이 나오면서 설치가 완료 된다.

다음은 모델을 만들 차례이다.

polls/models.py 파일에 아래 코드를 입력한다.

from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)

Django의 모델은 models.Model을 상속받아서 만들어지게 된다.

CharField는 문자열, DateTimeField는 날짜와 시간에 대한 데이터 값을 저장하는 변수이다.

ForeignKey는 다른 모델과의 관계를 생성하기 위해 사용하며, 위 코드에서는 Choice 클래스가 Question 클래스에 소속된다는 것을 의미한다.

모델을 만들었으니 이제 DB에 적용을 할 차례이다. migrate 명령어를 통하여 적용을 하기 위해서는 polls 어플이 현재 프로젝트에 있다는 설정을 해야 하므로 config/settings.py 파일을 수정해준다.

수정이 완료되면 migrate 명령어를 통하여 DB에 적용을 한다.

$ python manage.py makemigrations polls

아래 명령어를 입력하면 어떤 SQL이 실행될지 확인할 수 있다.

$ python manage.py sqlmigrate polls 0001

마지막으로 변경사항을 DB에 반영하면 된다.

$ python manage.py migrate polls 0001

모델에 함수 추가하기

Question 모델과 Choice 모델에 __str__ method를 추가하자. 이 method는 객체를 출력할 때 나올 내용을 결정한다.

기존 polls/models.py를 다음과 같이 수정한다.

from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') def __str__(self): return self.question_text class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) def __str__(self): return self.choice_text

또, was_published_recently method도 추가하자.

import datetime from django.db import models from django.utils import timezone class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') def __str__(self): return self.question_text def was_published_recently(self): return self.pub_date >= timezone.now() - datetime.timedelta(days=1) class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) def __str__(self): return self.choice_text

모델 생성이 완료되었으니 확인을 해보자. 관리자 계정을 생성한다.

$ python manage.py createsuperuser

그리고 polls/admin.py에서 Question Model을 관리하기 위해 다음 코드를 입력한다.

from django.contrib import admin from .models import Question admin.site.register(Question)

서버를 실행하고 관리자 페이지를 확인해보자. 다음과 같이 POLLS/Question이 생성되었을 것이다.

Question의 Add 버튼을 눌러 투표를 등록해보자.

제목을 입력하고 Today와 Now를 눌러 날짜와 시간을 입력한 뒤 SAVE 버튼을 눌러 저장한다.

from http://sorious77.tistory.com/65 by ccl(A) rewrite - 2020-03-06 03:20:24

댓글

이 블로그의 인기 게시물

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

django 설치 방법

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