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] Manager isn't accessible via ~~ instances

[django] Manager isn't accessible via ~~ instances 프로젝트를 진행하며 해당 오류가 났다. * AttributeError: Manager isn't accessible via Post instances view단에서 모델의 id값을 가지고 삭제를 할 때 발생한 에러이다. * post = Post().objects.get(id = post_id) 이런 식으로 가져왔는데 objects를 사용할 때에는 class레벨에서 사용 가능한 거라고 한다. instances에선 불가능하다 해결방법 * post = get_object_or_404(Post, id=post_id) get_object_or_404를 이용해 해결 완료 ^o^ 출처 및 참고 : https://m.blog.naver.com/PostView.nhn?blogId=exam2&logNo;=176866620&proxyReferer;=https%3A%2F%2Fwww.google.com%2F from http://integer-ji.tistory.com/127 by ccl(A) rewrite - 2020-03-25 00:54:14

스프링 프레임워크(Spring Framework)란?

스프링 프레임워크(Spring Framework)란? "코드로 배우느 스프링 웹 프로젝트"책을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다. '스프링 프레임워크'가 무엇인지 말 할 수 있고, 해당 프레임워크의 특징 및 장단점을 설명할 수 잇는 것을 목표로합니다. 1. 프레임워크란? 2. 스프링 프레임워크 "뼈대나 근간을 이루는 코드들의 묶음" Spring(Java의 웹 프레임워크), Django(Python의 웹 프레임워크), Flask(Python의 마이크로 웹 프레임워크), Ruby on rails(Ruby의 웹 프레임워크), .NET Framework, Node.js(Express.js 프레임워크) 등등. 프레임워 워크 종류 : 3. 개발 시간을 단축할 수 있다. 2. 일정한 품질이 보장된 결과물을 얻을 수 있다. 1. 실력이 부족한 개발자라 허다러도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다. 프레임워크를 사용하면 크게 다음 3가지의 장점 이 있습니다. 프레임워크 이용 한다는 의미 : 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발 한다. => 이러한 상황을 극복하기 위한 코드의 결과물이 '프레임워크' 입니다. 개발자는 각 개개인의 능력차이가 크고, 따라서 개발자 구성에 따라서 프로젝트의 결과 차이가 큽니다. 2. 스프링 프레임워크(Spring Framework) 자바 플랫폼을 위한 오픈 소스 애플리케이션 스프링의 다른 프레임워크와 가장 큰 차이점은 다른 프레임워크들의 포용 입니다. 이는 다시말해 기본 뼈대를 흔들지 않고, 여러 종류의 프레임워크를 혼용해서 사용할 수 있다는 점입니다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크 이다. 여러 프레임워크들 중 자바(JAV...

Elasticsearch-dsl 삽질 복기(1)

Elasticsearch-dsl 삽질 복기(1) 로그 분석 기능 개발 중. 향후 통합 로그 관리 기능을 염두에 두고 Elastic Stack 으로 밑그림을 그리고 시작했는데 당장의 요건은 장애 발생 후 로그 파일을 토대로 원인 추적, 분석이 핵심이다보니 편리한 하향식 검색 기능이 중요한 상황이다. Kibana 만으로 화면 구성하는 것은 한계가 있다고 판단하고 Elastic Search(이하 ES) API 이용한 화면 개발 쪽으로 가닥 잡고 레퍼런스 검색. ES 잘 모르는데, Python 웹 프로그램 개발 안해봤는데, Vue.js 써본 적 없는데 ... 그래도 이 글이 제일 깔끔해보이기에 따라 가보기로 했다. 우선 글 대로 따라하기. 안 된다. documnets.py 의 @talks.doc_type 부분에서 문제 발생했는데 ES 7.* 대에서는 Index 에서 doc_type 속성이 deprecated 된 탓. 맞는지는 모르겠지만 @registry.register_document 로 바꾸고 나니 동작한다. 따라하기로 짠 djanog 앱 소스 복사해서 우리 데이터에 맞추어 model, search, template 수정. 안 된다. 당연하게도. 에러 추적했던거 기록해두지 않아 정확히는 기억나지 않지만 복기해보자면 대충 id 의 type 문제 때문에 search.py 의 TalkDocument.search().query(query) 에서 문제 생겼던 것 같다. 일단 어찌되나 보자 싶어 과격하게 elasticsearch-dsl 소스 까서 id 타입 체크하는 부분 막아봤다. 에러는 안 나는데 결과값이 아무 것도 안나온다. 에러 조차 안나니 추적이 더 안된다 ㅜㅠ Logstash 에서 데이터 파싱할 떄 ID 필드 추가하고 int 타입의 일련값을 생성해줘봤다. 안된다 ㅜㅠ. 이 후 생쇼하면서 하루 날린거는 패스. 처음부터 찬찬히 다시 생각해보았다. 각 기술 요소 지식이 부족하니 추적은 어려웠지만 원인은 간단했다. 레퍼런스의 ...

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(13)

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(13) 1.Login 및 Logout 사용 1). Login사용 Django는 기본적으로 로그인 폼을 제공해준다. 따라서 다른 웹프레임워크에서 힘들게 로그인 셋팅을 하는 것을 간단하게 나타내주기 때문에 편리하게 로그인 화면을 작업할수 있게 되었다. 먼저 settings.py에서 아래와 같이 셋팅한다. LOGIN_URL과 SESSION_COOKIE_AGE 및 SESSION_SAVE_EVERY_REQUEST를 셋팅한다. 해당 LOGIN_URL은 login하는 폴더를 말하고 SESSION_COOKIE_AGE는 세션타임아웃을 말한다. SESSION_SAVE_EVERY_REQUEST는 세션을 사용할껀가 묻는 말인데 True로 셋팅하면 세션을 사용할수 있다. 그림1. settings.py 설정 다음으로 login 및 logout에 대하여 urls.py에 설정한다. 보면은 login URL파라미터 접근시 views의 user_login을 호출하고 logout은 logout_view를 호출한다. 그림2. urls.py설정 이제 views.py로 돌아온다. views.py는 아래 그림처럼 authenticate 모듈에 login 및 logout 클래스를 불러온다. 그리고 login_required를 사용하는데 login_required는 Django에서 각 class에 접근사용시 Login을 요청할수 있다. 따라서 로그인이 되어 있지 않은 URL로 접근되지 않게 설정하는 메소드 이다. 그림3. views.py Login 모듈 추가 이제 views.py에 user_login화면을 추가시킨다. 해당 user_login은 post형식으로 받고 username 및 password를 post를 받아서 변수에 저장한다. 이후 user라는 변수에 username 및 password내용을 저장하고 user내용이 있을시 login함수를 사용하여 로그인을 한다. 이때 정상으로...

피플펀드(PEOPLEFUND) 채용 정보: 피플펀드의 평균연령을 낮춰주실...

피플펀드(PEOPLEFUND) 채용 정보: 피플펀드의 평균연령을 낮춰주실... 마케팅팀 인턴 디자이너로 오시게 되면 이런일을 하게 됩니다.1. 온라인 광고 및 홍보 컨텐츠를 함께 기획하고 마케팅팀 디자이너분의 제작 서포트2. 페이스북 컨텐츠를 함께 기획하고 제작 서포트3. 마케팅 회의 중 젊고 새로운 시각으로 아이디어 내기4. 브랜드의 아이덴티티가 담긴 브로셔 함께 제작하기5. 디자이너분들과 아이디어를 시각화 하기 자격요건 - 현재 4학기 이상 재학중이거나 졸업예정자 - 기졸업자 가능 - Adobe 디자인 툴 사용가능 자 (포토샵, 일러스트레이터 등) 우대사항 - 마케팅 관련 업무 관심 및 경험자 - 주변 사람들이 나를 볼 때 "너 진짜 아이디어 뱅크다"라고 한 얘기를 들어보신 분 - 디자인을 하실 때 "1픽셀의 미학"을 인지하고 계시는 분 - 다루는 디자인툴은 많으면 많을 수록 "다다익선" 복지 - 대한민국 금융혁신의 역사를 함께할 수 있는 기회 - 개발, 비즈니스, 금융, 투자, 전략 등의 전문가와 매일같이 부딪히며 성장할 수 있는 기회 - 강남 한복판에 실리콘벨리를 재현한 듯한 멋지고 아늑한 사무실에서 근무 (역삼역에서 지하로 바로 연결) - 점심식대와 저녁식대, 커피, 간식 무한정 제공 - 근무시간 중 아무때나 자유롭게 가벼운 음주 가능 (단 주사는 곤란함) - 훌륭한 스타플레이어들과 원할 때 스타를 할 수 있음 (브루드워만 가능) - 근래에는 오버워치 경쟁전 함께할 파티원 찾고 있음 (겐지충 사절) 채용절차 1) 공감프로필 (피플펀드 지원사유 포함) 2) 서류 합격시 실무자와 면접 진행 더 많은 내용은 더 많은 내용은 더팀스 에서 확인하세요! from http://theteams.tistory.com/757 by ccl(A) rewrite - 2020-03-24 09:20:12

Flask, django - Python web framework

Flask, django - Python web framework 시작하기 | Django 문서 | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com from http://hiddentrap.tistory.com/153 by ccl(A) rewrite - 2020-03-23 23:54:11

[Django] 나만의 사이트 만들기 - 글쓰기

[Django] 나만의 사이트 만들기 - 글쓰기 # myApp/views.py from django.shortcuts import render, redirect, get_object_or_404, reverse from django.contrib.auth.models import User from django.utils import timezone from .models import Post def index(request): posts = Post.objects.order_by('-id') return render(request, 'index.html', {'posts':posts}) def post(request): if request.method == 'POST': post = Post() post.main_text = request.POST['main_text'] post.create_user = User.objects.get(username = request.user.get_username()) post.create_date = timezone.datetime.now() post.save() return redirect(reverse('index')) return render(request, 'post.html') # myApp/urls.py from django.urls import path from . import views urlpatterns = [ path('index/', views.index, name="index"), path('post/', views.post, name="post"), ] # myApp/models.py from django.db import models from django.utils import timezone from django.contri...