본문 바로가기

Python21

[SK shieldus Rookies 19기][애플리케이션 보안] - Python 시큐어코딩 가이드 2 1. 보안 기능 보안과 관련한 기능을 구현하지 않거나 부적절하게 구현한 경우 발생 인증, 인가, 접근통제, 암호화, 권한관리 등을 부적절하게 구현 시 발생하는 보안 약점은 적절한 인증 없는 중요기능 허용, 부적절한 인가 등이 있다. 중요한 정보가 있을 때, 이 중요한 정보를 보호하기 위해서는 인가된 사용자만 접근할 수 있도록 접근 통제를 하고, 식별, 인증, 인가를 해야 한다. 접근 통제에 문제가 생기는 것은 중요 정보에 권한이 없는 사용자에게 중요 정보가 노출된다고 한다. 권한이 없는 사용자가 중요 정보를 획득했을 때 중요 정보를 알지 못하도록 방어하기 위해서 암호화한다. 1) 적절한 인증 없는 중요 기능 허용 인증된 사용자인지 확인하지 않고 기능을 제공할 때 발생 Django 에서 기본적인 인증 로그.. 2024. 4. 2.
[SK shieldus Rookies 19기][애플리케이션 보안] - Python 시큐어코딩 가이드 1 1. 입력데이터 검증 및 표현 Python 시큐어코딩 가이드 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식 지정, 일관되지 않은 언어셋 사용 등으로 인해 발생하는 보안 약점으로 SQL 삽입, XSS 등의 공격을 유발할 수 있다. 1) SQL 삽입 입력값에 쿼리 조작 문자열을 확인하지 않고 쿼리문 생성 및 실행에 사용하는 경우 발생 쿼리가 조작되어 실행되기 때문에 권한 밖의 데이터에 접근할 수 있고, 쿼리 실행을 통해서 제공되는 기능을 우회해서 사용해 해당하는 시스템의 제어권을 탈취할 수 있다. (1) 안전한 코딩 기법 DB API 사용 시 인자(arguments)를 통해 외부 입력값을 바인딩해서 사용하면 SQL 삽입 공격으로부터 안전하게 보호할 수 있다. 구조를 정의하고 정.. 2024. 4. 1.
[SK shieldus Rookies 19기][Django] - Django 3 1. 스타일 적용 웹 페이지를 만들 때 세 가지 요소가 있다. 구분 HTML CSS JavaScript 역할 DATA Style Action HTML은 데이터를 나타내는 데 구조적으로 표현하기 위한 것이다. 데이터는 태그를 둘러싸여 있는데 기계가 해석하기에는 편한데 사람이 보기에는 어렵다. 그래서 이것을 구조와 형식을 만들어주는 CSS로 스타일을 만드는 것이다. CSS는 해당하는 문서의 구조, 형식, 색깔, 배치, 모양을 다루는 것이다. 데이터들을 시각화해서 사람이 쉽게 해석할 수 있도록 하는 것이 CSS에서 스타일을 만드는 것이다. 기계는 태그를 통해 해석하는 반면에, 사람은 시각적인 데이터를 가지고 해석한다. 그래서 CSS는 사람을 위한 것이다. Java Script는 동작을 처리하기 위해 사용한다... 2024. 3. 24.
[SK shieldus Rookies 19기][Django] - Django 2 1. DTL(Django Template Language) Django 템플릿 언어 변수 {{ 변수 }} 필터 변수의 값을 특정 형식으로 변환할 때 사용 변수 다음에 | (파이프)를 넣어서 필터를 명시 필터는 : 문자를 통해 인자를 받을 수 있음 {{ text | escape | lineberaks }} {{ text | truncatewords:30 }} {{ text | default:"default value" }} {{ text | length }} {{ text | upper }} 태그 {% 태그 %} if 문 또는 for 문처럼 흐름을 제어하기 위해 사용 {% extends %}와 같이 단독으로 사용하는 템플릿 태그 {% if %} {% endif %}처럼 반듯이 닫아줘야 하는 템플릿 태그 주.. 2024. 3. 23.
[SK shieldus Rookies 19기][Django] - Django 1 1. 앱 생성 1) pybo 앱 생성 django-admin startapp pybo 생성 tree .\pybo /f 생성된 파일 확인 설치 후 앱 생성까지 다 끝나서 개발 서버로 들어가면 되지만 URL을 정의하지 않아서 오류가 난다. 2) URL 맵핑 config\urls.py 파일에 path() 함수를 사용해서 URL과 요청을 처리할 함수 연결 from pybo import views path('pybo/', views.index), from django.contrib import admin from django.urls import path from pybo import views urlpatterns = [ path('admin/', admin.site.urls), path('pybo/', vie.. 2024. 3. 21.
[SK shieldus Rookies 19기][Django] - 실습 환경 구성 1. Django 보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발하도록 도움을 주는 파이썬 웹 프레임워크 Django는 다음과 같은 소프웨어를 개발하는데 도움을 준다. 1). Complete(완결성) "Batteries included"의 철학을 기반으로 개발자들이 개발하고 싶은 거의 모든 것을 개발하는데 도움을 줌 2) Versatile(다용도) 문서관리시스템과 Wiki, SNS, 뉴스에 이르기까지 다양한 종류의 웹 사이트를 빌드하는 데 사용 클라이언트측 프레임워크와 협업할 수 있음 HTML, RSS 피드, JSON, XML 등 대부분의 형식으로 콘텐츠 전송할 수 있음 3) Secure(안전) 개발할 때 실수하기 쉽지만 고려해야 하는 보안 문제에 대해서 많은 도움을 줌 유저의 계정과 비밀번호.. 2024. 3. 20.
[SK shieldus Rookies 19기][Python, SQL] - 실습 3 1. CLI 기반의 CRUD 프로그램 출력 예시 ========================== 메뉴 -------------------------- Q : 종료 ⇒ 프로그램을 종료 I : 등록 ⇒ 등록 화면으로 이동 S : 검색 ⇒ 검색 화면으로 이동 ========================== 메뉴를 선택하세요 >>> ========================== 회원 등록 -------------------------- 이름 : 홍길동 나이 : 23 이메일 : hong@test.com ========================== Y : 등록 / N : 취소 Y → members 테이블에 입력한 내용을 저장 → 등록했습니다. 출력 후 메뉴 화면으로 이동 N → 메뉴 화면으로 이동 ======.. 2024. 3. 20.
[SK shieldus Rookies 19기][SQL] - SQL 1. SQL 연결, 실행 순서 데이터베이스와 연동을 하기 위해서는 데이터베이스와 연결을 해야 한다. 이때 connect() 메서드를 사용한다. 연결이 되면 연결 객체가 만들어지는데 객체 안에는 커서라는 게 있다. 커서란 애플리캐이션 하고 데이터베이스 쪽에 서로 SQL 문을 전달하고 데이터베이스에서 그 SQL문을 실행한 결과를 받아오는 역할을 한다. SQL 문과 실행결과를 실어 나르는 객체다. SQL 문을 실행을 전달할 때는 커서의 execute 함수를 사용한다. commit()은 앞에서 했던 작업들을 DB에 반영되도록 하는 함수 close() 연결을 닫아 준다. 2. SQL 유형 명령어 종류 명령어 설명 데이터 조작어 (DML : Data Manipulation Language) SELECT 데이터베이스.. 2024. 3. 19.
[SK shieldus Rookies 19기][Python] - 정규 표현식 1. 정규 표현식 복잡한 문자열을 처리할 때 사용하는 기법, 줄여서 정규식이라고도 말한다. 주민번호 뒷자리를 바뀔 때 *이 나오는 것을 정규식으로 표현할 수 있다. 1) 시작 (1) 메타 문자 원래 그 문자가 가긴 뜻이 아니라 특별한 의미를 가진 문자를 의미 . ^ $ * + ? { } [ ] \ | ( ) (2) [ ] 문자 클래스 문자 클래스로 만들어진 정규식은 '[' 와 ']' 사이의 문자들과 매치라는 의미 문자 클래스를 만드는 메타 문자인 [ ] 사이에는 어떤 문자도 들어갈 수 있다. 정규식이 [abc]라면 'a, b, c" 중 한 개의 문자와 매치라는 뜻이다. 정규식 문자열 매치 여부 설명 [abc] a O "a"는 정규식과 일치하는 문자인 "a"가 있으므로 매치 before O "before".. 2024. 3. 19.
[SK shieldus Rookies 19기][Python] - 내장 함수, 표준 라이브러리, 외부 라이브러리 Faker 1. 내장 함수 파이썬 모듈과 달리 import가 필요하지 않기 때문에 아무런 설정 없이 바로 사용할 수 있는 함수 만들려는 프로그램이 이미 만들어져 있는지 살펴봐야 한다. 이미 만들어진 것을 대시 만드는 것이 목적이 아니라면 누군가 만들어 놓은 프로그램을 다시 만드는 것은 시간 낭비고, 그 프로그램은 이미 테스트 과정을 수없이 거쳤기 때문에 충분이 검증되어 있다. 파이썬 라이브러리를 살펴보는 것이 매우 중요하다. abs abs(x)는 어떤 숫자를 입력받았을 때 그 숫자의 절댓값을 리턴하는 함수 print(abs(-3)) print(abs(-1.2)) 출력 : 3 출력 : 1.2 all all(x)는 반복 가능한 데이터 x를 입력값으로 받아 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 Fa.. 2024. 3. 18.