![[Flask] SQLAlchemy ORM 활용법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBXXHK%2FbtsHnW9t7Ne%2FJgLZinh2kktsSMCdUtmHPk%2Fimg.jpg)
ORM(Object Relational Mapper)?객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.객체 모델과 관계형 모델 간에 불일치가 존재한다.ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.데이터베이스 데이터 Object 필드객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.Persistant API라고도 할 수 있다.Ex) JPA, Hibernate 등ORM 활용법User 객체에 db.Model을 상속했을 경우 User객체에서 바로 query 함수를 불러올 수 있다.ex ) WHERE part에서 -> user = User.query.filte..

SSH(Secure Shell Protocol)이란, 네트워크 프로토콜 중 하나로 Puublic Network를 통해 서로 통신 할 때 보안적으로 안전한 통신을 하기 위한 프로토콜이다.SSH Key란, SSH프로토콜로 접속 시 비밀번호를 사용하지않고 key값을 제출하는 방식으로 로그인을 하는 것이다.SSH Directory 생성 및 권한 변경sudo mkdir ~/.sshsudo chmod 700 ~/.sshcd ~/.sshSSH Key 생성ssh-keygen -t rsa -b 4096 -C "GiHub Email@example.com"RSA 암호화 방식으로 키를 생성한 후 GitHub에 등록한 이메일 주소를 작성한다. 계속 Enter를 눌러주어 생성을 완료한다.※비밀번호를 설정했다면, ssh-keyge..
![Flask+Vue+Nginx+MySQL Dockerize on Linux - [Setting Up]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaIBXp%2FbtsHni6mach%2FvK9jT1K2lQTjg71lKHfH81%2Fimg.png)
사용자가 새로운 글을 추가하고 다른 사람들이 추가한 글들을 볼 수 있는 게시판을 만들예정이다. 게시글을 저장할 MySQL 데이터베이스, Flask를 사용하는 백엔드 API 및 Flask Restful, VueJS를 사용하는 프론트 엔드 인스턴스를 만들어 Docker와 연결시켜볼 것이다.Ubuntu Settingdb, api, nginx 폴더를 만든다.Creating the database▶ MySQL installworkspace/db/init.sql을 다음과 같이 작성하여 데이터베이스를 생성하고 테이블을 만들어 INSERT시켜준다.CREATE DATABASE `quotes_db`;USE `quotes_db`;CREATE TABLE `quote` ( `id` INT(11) PRIMARY KEY AU..

IT 네트워크는 라우터와 DNS의 집합체라고 해도 과언이 아니다. 그래서 인터넷의 통신 원리를 IT 인프라 관점에서 깊게 정리해 봤고, 인터넷 통신의 핵심인 DNS 보안에 대해 알기 쉽게 작성해봤다. 인터넷에 google 주소를 쳤을 때 내부에서 일어나는 과정은? 직무 면접에서 나올 수 있는 질문인데 이것을 조금 딥하게 정리해보고자 한다. 기본적으로 DNS는 "www.google.com"이라는 문자를 주소창에 입력하면 172.217.25.164 라는 ip 주소로 바꿔주어 접속을 가능하게 만들어 준다. https://www.ibm.com/kr-ko/topics/dns 에서 자세하게 보면 된다. 내 PC에서 google 주소를 입력했을 때 맨 처음에는 host file과 DNS Cache를 순차적으로 검색하..

Critical High Medium Low Info 여러 단계의 취약점들이 발견 되었다. Critical에 가까울수록 공격(Exploitation)받기가 쉬우며, 시스템 주도권을 뺏기기 쉽다. 실제로 취약점이 존재하지만 스캔 되지 않는 취약점들을 'False Nefativce(존재하는 오류를 부정)' 이라고 부른다. 이와 반대는 'False Positive(존재하지 않는 오류진단)' 이 있다. ex)스팸메일 Metasploitable2 서버 공격 - [Critical Exploitation] Backdoor Metasploitable2에서 발견된 가장 높은 단계의 취약점인 백도어 공격을 수행해봤다. 1. 취약점 분석 Backdoor 취약점 목록으로 들어간다. 상세 페이지를 ..

스캐닝 환경 설정 공격 타겟 설정 Nessus가 active상태인 것을 확인하고 웹서버에 접속 했다면,[New Scan] - [Advanced Scan] 으로 들어온 뒤 공격할 Target IP주소들을 적는다. 같은 네트워크 환경에 구축되어있는 Metsploitable2와 WindowsXP서버 IP를 적어줬다. ASSESSMENT ASSESSMENT탭에서는 두 번째 칸을 체크한다. REPORT REPORT 탭에서 다음과 같이 설정. ADVANCED ADVANCED에선 다음과같이 설정. Credentials Credentials의 SSH탭에 인증 방식을 패스워드로 바꾸고 metasploitable2의 login정보를 입력한다. Plugins Plugins에서 CISCO, F5 Networks Local S..

Nessus 환경 세팅 가장 유명한 취약점 분석 툴 중 하나이다. 무료 버전인 Nessus Essentials를 사용했다. 1. Download ▶ Download Link Download에 저장된 파일로 설치를 실행한다. 2. 설치파일 실행 # service nessusd status # service nessusd start # netstat -tnlp nessusd가 실행되었는지 확인 후 inactive 상태라면 start 해주고, netstat로 tcp통신을 진행중인 서비스의 연결 상태를 확인한다. 3. Nessus 웹서버 접속 그다음 웹브라우저로 https://0.0.0.0:8834 로 접속. (또는 kali IP주소:8834) 들어온다면 essentials가입 으로 계속하기 한 다음 이름과 이..
![[Python] Zappa를 이용해 AWS Lambda에 flask Web app 서버리스 구현하는 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsLcCv%2FbtsA7y1O67J%2FgLpF319TFjp5i9ilGWRdkk%2Fimg.png)
Serverless란?서버리스란 개발자가 서버를 관리할 필요 없이 개발에만 집중 하며 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델이다.프로덕트를 서버에서 실행시키지 않고, 자원을 분산시켜 함수는 함수대로 DB는 DB대로 각각 나누어 연동시켜 프로덕트를 동작하게 한다고 할 수 있다.그래서 진짜로 서버가 없는 것이 아니라 그 서버를 관리해야하는 지식의 수준과 번거로움이 많이 줄어들며, 개발자는 배포를 위해 코드를 컨테이너에 패키징하기만 하면 된다는 것이다.Zappa란?Zappa(공식 Zappa Gitgub)란 AWS기능들을 활용한 서버리스 구조를 활용해 Python Back-end 코드를 배포하는데 도움을 주는 패키지이다. Zappa를 통해 API Gateway, S3연동같은 작업들을 좀 더..