반응형

시큐어코딩 6

파이썬, 개발) 하드코딩 된 정보 안전하게 변환하기

하드코딩을 하는 이유 가끔씩 개발 테스트할 때 시스템이 연동되고 있는지 확인하거나 연동 후 결괏값이 잘 반영되었는지 확인하기 위해 하드코딩을 하는 경우가 있다. 또는 내부 시스템이 고정 코드값을 갖고 있어야 연결되는 경우 하드코딩을 하는 경우가 있다. 이런 이유로 하드코딩을 하고 있지만 노출될 때 피해는 무척 크다. 하드코딩 적용했을 때 보안 방안 DB서버 연동을 하기 위해서 어쩔 수 없이 IP와 같은 정보를 입력하는 경우에 대한 보안조치가 있다. 안전한 암호화 방식으로 변환 후 별도 분리 공간(파일)에 저장하고 복호화하는 방법이다. 파이썬 코딩 예시 import pymysql import json def query_execute(query, config_path): with open(config_pat..

IT/앱사용방법 2022.09.09

파이썬 코딩 - 쿠키값 관리

쿠키값 관리가 중요한 이유 대부분의 쿠키는 PC 메모리에 상주하며, 브라우저 실행이 종료되면 사라진다. 그러나 세션에 관계없이 지속적으로 저장되도록 설정할 수 있으며, 보통 C드라이브에 저장되어 사용된다. 개인정보, 인증 등 쿠키값에 영구 저장된다면 공격자는 쉽게 정보탈취 기회를 갖게 된다. 그래서 쿠키값 세팅을 해주는 방법과 개인이 관리하는게 중요하다. 보통 웹 개발 코드 예시 쿠키의 만료시간을 기본값으로 설정한다. 신경쓰지 않거나 테스트를 위해 길게 설정하고 잊고 넘어가는 경우가 있는데 그대로 사용자 하드디스크에 여러가지 정보가 저장되어 있는 쿠키를 공격자가 쉽게 도용될 수 있게 된다. from django.http import HttpResponse def remind_user_state(reque..

IT/앱사용방법 2022.08.06

시큐어코딩) 파이썬 피싱공격 예방(기초 코드 예시포함)

피싱 공격이란? 일반적으로 사용자에서 전달한 URL 주소로 연결하기 때문에 안전하다 생각할 수 있지만 해당 폼의 요청을 변조하여 피싱사이트로 접속하게 만든다. 피싱공격 방법 1. 공격자가 웹서버에 URL 주소 변조 값을 전달한다. 2. 변조된 URL 반환 값(피싱사이트)로 연결된다. 3. 일반 사용자가 웹서버에 올라간 URL을 클릭할 때 피싱사이트로 연결된다. 피싱 공격 시큐어 코딩 예시 : 화이트리스트 만들어 관리 ALLOW_URL_LIST = [ '127.0.0.1', '192.168.0.1', 'https://login.service.com', ...... '/notice' ] def redirect_url(request): url_string = request.POST.get('url', '') ..

IT/앱사용방법 2022.06.14

시큐어코딩) 파이썬 파일 업로드 공격 예방 하는 방법(기초)

파일 업로드 공격이란? 서버 측에서 실행될 수 있는 스크립트(asp, jsp, php, sh 등)파일 등 이 업로드 가능하면, 이 파일을 통해 공격자가 웹서버에서 직접 접근 기반을 마련하는 공격 기법이다. 파일 업로드 공격 방법 1. 공격자가 실행 가능한 파일을 서버에 업로드한다. 2. 파이썬에서 문자열 형식으로 표현된 형식을 인수로 받는다. 3. 인수를 반환하는 eval이나 인수로 받은 문자열을 실행하는 exec 함수를 같이 사용해 여러 변수들을 실행시킨다. 이는 웹 쉘 공격에 취약하게 만드는 방법이다. 파일 업로드 시큐어 코딩 예시 ​ # 업로드 하는 파일에 대한 개수, 크기, 확장자 제한하는 설정 FILE_COUNT_LIMIT = 5 # 업로드 하는 파일의 최대 사이즈 제한 (5MB - 5*1024..

IT/앱사용방법 2022.06.02

시큐어코딩) 파이썬 경로조작, 자원삽입 공격 예방하는 방법(기초 예시)

경로조작 및 자원삽입 공격 설명 외부 입력값을 통해 파일 및 서버 등 시스템 자원에 대한 접근 또는 식별을 허용할 경우, 입력 값 조작을 통해 시스템이 보호하는 자원에 임의로 접근할 수 있는 보안취약점. 공격자는 게시글 혹은 데이터의 수정, 삭제, 정보노출, 시스템 장애 등을 유발 할 수 있음. 즉, 공격자가 허용되지 않은 권한을 취득하여 설정에 관계된 파일을 변경하거나 실행시킬 수 있는 공격 경로조작 시큐어코딩 예시 필터링 적용 예(Django프레임워크) def get_info(request): # 외부 입력 값으로 받은 파일 이름은 검증하여 사용한다 request_file = request.POST.get('request_file') filename, file_ext = os.path.splitext..

IT/앱사용방법 2022.06.01

시큐어코딩) 파이썬 SQL 인젝션 공격 예방코드 기초

SQL 인젝션 알고 가기 공격자가 글 쓰는 폼이나 URL에서 입력에 SQL문을 삽입해 DB에 직접 정보를 열람하거나 데이터를 조작하는 공격 SQL 인젝션 공격 원리 웹과 DB가 서로 통신하는 부분에 공격자가 임의의 SQL문을 삽입함 예) 로그인할 때 파라미터 값을 where = '1' or '1'과 같은 모든 값이 참으로 바뀌게 하여 로그인 우회 파이썬에서 SQL 인젝션 예방 외부에서 들어오는 입력 값을 매개변수로 받아 저장하고 매개변수 값을 실행 함수에서 바인딩하여 변수로 호출함. 시큐어 코딩이 적용되지 않은 소스 with dbconn.cursor() as curs: # name, id값을 입력받음 name = request.POST.get('name', '') id = request.POST.get(..

IT/앱사용방법 2022.05.19
반응형