입력데이터 검증 및 표현 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식지정, 일관되지 않은 언어셋 사용 등으로 인해 발생되는 보안 약점으로 SQL 삽입, 크로스사이트 스크립트(XSS) 등의 공격을 유발할 수 있다. SQL 삽입 정의 DB와 연동된 웹 응용프로그램에서 입력된 데이터 대한 유효성 검증을 하지 않을 경우, 공격자가 입력폼 및 URL 입력란에 SQL 문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안약점을 의미한다. 안전한 코딩기법 DB API 사용시 인자화된 쿼리를 통해 외부 입력값을 바인딩해서 사용하면 SQL 삽입 공격으로부터 한전하게 보호할 수 있다. ORM 프레임워크(Django의 querySets, SQLAlchemy, Storm)을 사용한다...
Secure Coding(시큐어 코딩)이란? 'Secure Coding(시큐어 코딩)' 또는 '소프트웨어 개발보안'은 소프트웨어 개발과정에서 개발자의 실수, 논리적 오류 등으로 인한 보안취약점 및 약점들을 최소화해 사이버 보안 위협으로 부터 안전한 소프트웨어를 개발하기 위한 일련의 보안활동을 의미합니다. Secure Coding의 필요성 개인정보보호 : 소프트웨어는 사용자의 개인정보를 다루는 경우가 많다. 보안 결함이나 취약점이 존재하면 해커가 개인정보를 탈취하거나 유출할 수 있으므로, 개인정보보호를 위한 보안이 필요하다. 기업데이터보호 : 기업은 고객정보, 경영데이터, 기밀정보 등 많은 중요한 데이터를 소프트웨어를 통해 다룬다. 이러한 데이터를 보호하지 않으면 기업은 큰 손실을 입을 수 있다. 서비스 ..
Beautiful Soup란? Beautiful Soup은 웹페이지 분석 모듈로, HTML 코드에서 특정 태그나 값을 추출(parsing;파싱)할 때 사용하는 라이브러리입니다. requests 모듈로 HTML 소스를 받아오고 Beaitoful Soup은 이를 파싱합니다. parsing(파싱)이란 가공되지 않은 문자열에서 필요한 부분을 추출하여 의미있는 구조화된 데이터로 만드는 과정입니다. [관련 문서] https://www.crummy.com/software/BeautifulSoup/bs4/doc/ Beautiful Soup Documentation — Beautiful Soup 4.12.0 documentation Beautiful Soup Documentation Beautiful Soup is a ..
openpyxl 모듈은 파이썬에서 엑셀을 쉽게 다룰 수 있도록 도와주는 모듈입니다. openpyxl 설치는 cmd(터미널)창에서 다음과 같이 입력해주어야합니다. pip install openpyxl 가로 M, 세로 N 값을 받아 곱셈표를 만들어 엑셀파일(xlsx)로 저장하는 코드입니다. 예를 들어 가로 5, 세로 6을 입력하면 다음과 같이 엑셀에 저장되어야 합니다. 1. 필요한 모듈 가져오기 현재 디렉토리에서 작업하여 해당 파일에 저장하기 위해 os 모듈을 사용합니다.(선택) 가로 M, 세로 N 값을 받기 위해 sys 모듈을 사용합니다. (선택, input() 사용 가능) 파이썬에서 엑셀을 다루기 위해 openpyxl 모듈을 사용합니다. import sys, openpyxl, os from openpyx..
webbrowser란? webbrowser는 파이썬 기본 내장 모듈로 브라우저로 특정 페이지를 열 때 사용합니다. import webbrowser webbrowser.open('https://www.naver.com') requests란? requests는 스크래핑에서 활용되는 모듈로, 인터넷에서 파일과 웹페이지를 다운로드하는데 사용합니다. reqeusts모듈을 사용하기 위해서는 설치를 해야합니다. pip install requests 기본 사용법 네이버 주소에 get 요청을 보내면 서버에서는 요청을 받아 처리 후 응답을 줍니다. 응답코드가 status_code입니다. 응답 내용이 req.text의 결과값입니다. import requests url = 'https://www.naver.com' req =..
데이터 수집의 3단계 계획단계 : 어떤 데이터를 수집할 것인지 결정하고, 데이터의 원본 및 형식을 정한다. 또한 데이터 수집에 필요한 도구와 기술을 선택한다. 수집단계 : 데이터를 수집하는 단계로, 이를 위해 웹 크롤링, API 호출 또는 수동 데이터 입력과 같은 다양한 방법을 사용할 수 있다. 데이터를 수집하면서 데이터 품질을 유지하고, 저작권 및 개인정보 보호와 관련된 법률을 준수해야한다. 가공 및 저장단계 : 수집한 데이터를 가공하여 필요한 형식으로 정리하고, 데이터베이스 또는 파일 시스템에 저장한다. 이 단계에서는 데이터를 분석할 수 있도록 준비한다. 스크래핑과 크롤링 스크래핑: 웹페이지의 특정 부분에서 원하는 데이터를 추출하는 기술 크롤링: 웹페이지를 자동으로 탐색하여 원하는 데이터를 추출하는 ..
zipfile 모듈이란? 파일을 압축하거나 해제하는 등 압축파일에 관련된 모듈입니다. zipfile 모듈은 기본으로 설치되어 있는 파이썬 내장 라이브러리이기 때문에 따로 설치할 필요가 없습니다. 파일 하나만 압축 파일을 압축할 때는 write()를 사용합니다. 일단 os 모듈을 통해 작업할 위치로 현재 디렉토리를 변경해줍니다. import zipfile, os os.chdir('D:\\python_study\\zipfile_test') #현재 디렉토리 위치 변경 #파일 하나만 압축 one_new_zip = zipfile.ZipFile('new.zip','w') one_new_zip.write('hello.txt') one_new_zip.close() 파일 여러개 압축 파일을 여러 개 압축할 때는 먼저 압..
pickle 모듈은 기본으로 설치되어 있는 파이썬 내장 라이브러리이기 때문에 따로 설치할 필요가 없습니다. pickle 모듈을 사용하는 이유 텍스트가 아닌 자료형은 일반 파일 입출력이 불가능합니다. 따라서 리스트, 딕셔너리, 클래스 등과 같은 파일은 pickle을 사용하여 저장합니다. 그리고 pickle.load()를 사용하여 파일을 읽어오기 위해서는 pickle.dump를 사용하여 데이터를 입력해야합니다. 객체 파일 열기/쓰기 pickle.dump()를 사용하여 객체를 저장합니다. import pickle #열기/쓰기 color = ['red','yellow','blue','green','purple'] with open('pickle.dat','wb') as file: pickle.dump(color..