SQL Injection 악의적인 SQL을 주입하여 공격하는 기법 (예시 : 로그인 폼에 ' OR '1' ='1 같은 SQL을 삽입하여 데이터베이스를 조작하는 방법)
XSS Javascript를 삽입해 공격하는 기법 (예시 : 댓글 입력 창에 <script>alert('XSS');</script> 같은 Javascript를 삽입해 사용자 브라우저에서 악성 코드를 실행.)
CSRF 위조된 요청을 보내는 공격 방법
clickjacking 사용자의 의도하지 않은 클릭을 유도하는 공격 방법
3️⃣ Django에는 여러 기능이 준비되어 있음
필요로 하는 Web Program 개발을 위한 도구와 기능이 대부분 준비되어있음
Django 개발 환경 준비
1️⃣ Python 가상 환경
Python Project를 진행할 때 독립된 환경을 만들어주는 도구
원하는 버전의 파이썬과 라이브러리를 쉽게 설치해 사용 가능
C:\users\pahkey> cd \
C:\> mkdir venvs
C:\> cd venvs # macOS 사용자의 경우 홈 디렉터리(/users/pahkey) 밑에 venvs 디렉터리 생성
C:\venvs> python -m venv mysite # Python 가상 환경을 만드는 명령어 (macOS : python -> python3)
python -m venv : python module 중 venv 라는 module을 사용한다는 의미
mysite : 생성할 가상 환경 이름
C:\venvs> cd C:\venvs\mysite\Scripts # 가상 환경이 있는 디렉터리 진입
C:\venvs\mysite\Scripts> activate # 가상 환경 실행
(mysite) C:\venvs\mysite\Scripts>
(mysite) C:\venvs\mysite\Scripts> deactivate # 가상 환경 벗어남
macOS의 경우는 다음과 같다.
pahkey@mymac venvs % cd mysite/bin
pahkey@mymac bin % source activate # 가상환경 실행
(mysite) pahkey@mymac bin %
2️⃣ Django 설치
가상 환경에서 Django 설치 (버전)
"pip install django" (특정 버전 설치 가능 : pip install django==4.1.2)
Django Project 생성
Project : 하나의 Web-site
Project 내부에는 여러 개의 "App"이 포함될 수 있고, 각각 독립적인 기능을 담당하는데 이들이 모여 하나의 Web site 구성 (예 : 관리자 기능을 담당하는 관리자 앱, 사용자의 로그인과 인증을 처리하는 인증 앱같은 Django 기본 제공 앱도 있고 개발자가 직접 만들어 추가하는 앱도 존재)
여기서 말하는 App은 Android, iOS App과는 다른 의미.. (특정 작업을 처리하는 작은 Module 로 프로젝트를 구성하는 개별적인 기능 단위)
1️⃣ Project 생성
Django Project는 여러 개가 될 수 있으므로 root Project 생성은 필수