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] 관리자 모델 관리

관리자 페이지에서 모델을 관리할 수 있도록 모델을 등록하겠습니다.

저번에 papa_user 앱에 papauser 모델을 생성했습니다. [관련링크]

papauser 모델은 models.py에 들어있습니다.

admin에 모델을 등록하기 위해서는 admin.py에서 작업을 처리해줘야합니다.

모델 등록

from .models import papauser #papauser 모델이 필요한데 모델은 models.py에 있기 때문에 models.py에서 papauser 모델을 import함 #다른 파일에 있는 코드를 가져오는 것, 다른 파일에 정의되어 있는 모델을 가져오는 행위 class papauser_admin(admin.ModelAdmin): list_display = ['username', 'password', 'registered_dttm'] #단순하게 admin.site.register(papauser, papauser_admin) 명령어만 사용해도 등록 가능 #하지만 모델에 대한 커스텀이 허용되지 않음 #ModelAdmin을 상속해서 커스텀 후 클래스를 통해 등록 admin.site.register(papauser, papauser_admin) #가져온 모델을 등록하는 명령어(papauser : 모델이 가진 정보, papauser_admin : 모델 커스텀 정보)

위의 명령어를 추가해줍니다.

이제 papa_user 앱에서 papauser 모델이 관리자 페이지에 등록이 됬습니다.

모델을 통해 DB에 값 넣기

관리자 페이지에서 모델이 등록된 것을 볼 수 있습니다.

Add 버튼을 통해서 사용자를 추가할 수 있습니다.

모델의 데이터 기준

papa_user/models.py에서 코드를 보면

class papauser(models.Model): username = models.CharField(max_length=64, verbose_name='사용자명') password = models.CharField(max_length=64, verbose_name='비밀번호') registered_dttm = models.DateTimeField(auto_now_add=True, verbose_name='등록시간')

이렇게 구성되어있습니다.

verbose_name에 작성된 명칭으로 화면에 나와있는 것을 볼 수 있습니다. 그리고 값을 받는 변수는 2개를 설정했습니다.

그래서 사용자를 추가할 때 사용자명(username), 비밀번호(password)의 값만 받게 나와있습니다.

save 버튼을 누르게되면 안에 새로 등록한 user의 값들이 보입니다.

초기값에는 이렇게 보이지 않습니다. 이렇게 보게 하기 위해서는

class papauser_admin(admin.ModelAdmin): list_display = ['username', 'password', 'registered_dttm']

위의 코드를 입력해 주었기 때문에 모델이 커스텀되서 위의 화면처럼 보이게 된 것입니다.

papauser 모델의 내용을 list화 시켜주는 내용

모델의 세부 변수 값을 바로 볼 수 있기 때문에 데이터베이스 테이블과 비슷한 모습을 가짐

모델 수정

models.py에서 수정하게 됩니다.

Django는 기본적으로 모델을 복수형으로 보여줌

verbose_name : 복수형이 아닌 모델의 명칭을 변경

verbose_name_plural : 복수형으로 표현된 모델의 명칭을 변경

복수형으로 표현된 모델의 명칭을 '사용자_TABLE'로 변경

모델의 명칭을 '사용자'로 변경

아직 부족한 부분이 많습니다.

정확한 정의나 명칭의 오류가 조금씩 있을 수 있습니다.

감사합니다 :)

from http://greatpapa.tistory.com/19 by ccl(A) rewrite - 2020-03-14 13:54:11

댓글

이 블로그의 인기 게시물

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

django 설치 방법

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