일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- inflearn
- 자바공부
- 제네릭
- Secure Coding
- 김영한
- 자바의정석 연습문제
- 스프링입문
- 서블릿
- 항해플러스
- JPA
- 불친절한SQL프로그래밍
- 불친절한 SQL 프로그래밍
- 스프링 핵심원리
- 인프런
- 항해플러스 백엔드
- Python
- 이것이자바다
- 스프링
- 스프링 부트와 JPA
- 시큐어코딩
- java
- Numpy
- REGEXP_SUBSTR
- 자바연습문제
- 자바의정석
- Java의정석
- 스프링MVC
- Spring
- docker
- 분석함수
- Today
- Total
목록Study (60)
Continuous Challenge
세션관리 취약점 HTTP 프로토콜은 상태관리를 하지 않는 (Stateless) 프로토콜이다. 서버는 클라이언트의 정보를 유지하기 위해 세션메모리를 할당하여 클라이언트의 인증정보를 관리한다. 할당된 세션메모리를 구분하기 위해 서버는 세션ID를 할당하게 되며, 할당된 세션ID는 쿠키, URL파라메터, 의 hidden 파라메터값 형식으로 클라이언트에게 전달한다. 다른 사용자의 권한을 가로채기 위해서는 사용자의 정보를 저장하고 있는 세션의 정보를 추측하거나, 훔치거나, 공격자가 원하는 세션을 사용하게 하는 방법을 이용할 수 있다. - 세션ID 추측 : 세션ID 생성방법이 부적절한 경우 제 3자가 추측가능하며 세션 하이재킹이 가능하다. - 세션ID 훔치기 : 네트워크상에서 패킷 스니핑을 통해 세션ID를 훔쳐내거나..
분석, 설계단계 보안 요구항목 이해 1. 입력값 검증 2. 인증 3. 인가 4. 중요정보 처리 5. 암호화 - 키를 어떻게 생성하고 어떻게 반환할 건지가 가장 중요★ 6. 로깅/에러 처리 7. 세션관리 - 세션 = stateless, 연결되지 않은 상태에서 관리. 위협모델링 위협모델이란? - 위협모델은 설계 단계에서 보안 문제에 대한 체계적인 접근에 도움을 주기 위한 것이다. 위협모델링 학습 위협모델링은 다음 4가지 질문에 집중하는 것부터 시작해야 한다. - 무엇을 개발하고 있는가 - 무엇이 잘못될 수 있는가 - 잘못될 수 있는 것에 대해 어떤 조취를 취해야 하는가 - 분석을 잘 수행했는가 위협모델링 수행단계 1. 위협모델링을 수행할 팀을 소집한다. - 보안전문가가 팀장을 맡는 것이 좋다. 2. 애플리케..
김영숙 강사님(주식회사 오픈이지 대표) PART 01. 안전한 소프트웨어 개발 방법론 CH1. 시큐어코딩 개요 1. 소프트웨어 개발보안의 필요성 2. 침해 사고 사례 - 오버플로우와 언더플로우 → 세이프매스(Safemath) : 오버플로우를 방지하기 위해 사용하는 함수. - OpenSSL HeartBleed 취약점 : OpenSSL에서 서버와 클라이언트간의 연결유지를 위해 전달되는 실제 데이터 길이와 메시지로 전달되는 데이터 길이값을 서버가 비교하지 않고 처리하여 인접한 메모리 정보 유출 3. 보안 약점/취약점 DB 활용 - CWE 취약점 DB활용 (http://cwe.mitre.org) - SANS TOP 25 (http://www.sans.org/) → 2013년도 버전 TOP 25 유지를 권장 - ..
numpy 자료형(data type) int, float, bool(True/False) - 정수형(int : integer) 부호가 있는 정수형 : int8(-127~127), int16(-32768~32767), int32, int64 부호가 없는 정수형 : uint(Unsigned integer) : uint8(0~255), uint16(0~65535), uint23, uint64 - 실수형(float) float16, float32, float64 - 복소수형(complex) complex64 : 두 개의 32비트 부동소수점으로 표시되는 복소수 complex128 : 두 개의 64비트 부동소수점으로 표시되는 복소수 - 데이터의 타입을 알아보기 위한 함수 : dtype arange()
numpy 연산 - 연산자를 이용할 경우에는 +. -, *, / - 함수를 사용할 경우에는 add(), subtract(), multiply(), divide() 배열 a와 배열 b가 있을 때, a + b는 a[0]+b[0], a[1]+b[1], ... 와 같은 방식으로 연산 후, 그 결과를 리턴한다. numpy에서 vector와 matrix의 product(행렬곱셈)를 구하기 위해서 dot()함수를 이용한다. [1, 2] [5, 6] [1*5 + 2*7, 1*6 + 2*8] [3, 4] [7, 8] [3*5 + 4*7, 3*6 + 4*8] numpy에서는 배열 간의 연산을 위한 여러 함수들을 제공한다. - sum() : 각 배열의 요소를 더하는 함수. - product() : 배열의 요소들을 곱하는 함..
numpy 슬라이싱 정수 인덱싱(integer indexing) numpy 배열 a에 대해서 a[[row1,row2], [col1,col2]]는 a[row1,col1]과 a[row2,col2]라는 두 개의 배열 요소 집합을 의미한다. 부울린 인덱싱(boolean indexing) 부울린 인덱싱 배열을 생성할 때 표현식으로 이용하기 - 배열 a에 대해서 짝수인 배열 요소만 True로 지정하겠다 하면, b_arr = (a%2==0)
Anaconda 3.7 (2020.01.04 기준 최신버전) 설치 Numpy 설치 (pip3 install numpy) Pandas 설치 Numpy/Pandas 소개 - 고급데이터 분석 혹은 수치계산 시 사용. Numpy - 과학 계산을 위한 라이브러리로 다차원 배열을 처리하는데 필요한 여러 기능을 제공한다. (수치계산 시 사용. 대표적으로 다차원배열, 좀 더 높은 수준의 수학 함수 제공. 과학 수치 계산에서 뛰어난 모듈로 알려져있음.) - numpy 배열 동일한 타입의 값들을 갖는다. 배열의 차원을 rank라고 한다. shape : 각 차원의 크기를 튜플로 표시한 것. 예) 2행 3열인 2차원 배열은 rank값은 2이고, shape(2,3) - numpy 배열 생성 1) 파이썬의 리스트를 사용하는 방법..
♣ CURSOR(커서)란? 쿼리문에 의해서 반환되는 결과값들을 저장하는 메모리 공간. SELECT 문을 통해 결과값들이 나올 때 이 결과들은 메모리 공간에 저장하게 되는데 이때 이 메모리 공간을 '커서'라고 한다. ♣ FETCH란? 커서에서 원하는 결과값을 추출하는 것. 더보기 SELECT의 결과가 하나의 행(단일 튜플)일 경우는 INTO 절을 이용해 변수에 저장할 수 있지만, 결과가 복수행(복수 튜플)일 경우는 INTO절로 이를 처리할 수가 없다. 이렇게 복수 행의 결과를 행 단위로 처리하기 위해서 사용하는 것이 CURSOR이다. CURSOR 표현식은 서브 쿼리의 결과를 중첩 커서(nested cursor)로 반환한다. 중첩 커서는 PL/SQL의 REF CURSOR와 동일한 유형이다. 예제를 위해 다음..
756P REGEXP_LIKE 조건 REGEXP_LIKE 조건은 source_char가 pattern과 일치하면 TRUE, 일치하지 않으면 FALSE를 반환한다. REGEXP_LIKE(source_char, pattern [, match_param]) 매개변수 설명 source_char 검색 문자열 pattern 검색 패턴 match_param 일치 옵션 아래의 일치 옵션을 사용할 수 있다. 기본값은 c다. icnmx 형식으로 다수의 옵션을 합께 지정할 수도 있다. 옵션 설명 i 대소문자 무시 c 대소문자 구분 n dot(.)를 개행 문자와 일치 m 다중 행 모드 (앵커(^,$)에 영향) x 검색 패턴의 공백 문자를 무시 REGEXP_REPLACE 함수 REGEXP_REPLACE 함수는 source_ch..
744P 정규 표현식 정규 표현식은 문자열의 규칙을 표현하는 검색 패턴으로 주로 문자열 검색과 치환에 사용된다. 24.1.1.1 기본 연산자 연산자 영문 설명 . dot 모든 문자와 일치 (newline 제외) | or 대체 문자를 구분 \ backslach 다음 문자를 일반 문자로 처리 24.1.1.2 앵커 앵커(anchor)는 검색 패턴의 시작과 끝을 지정한다. 연산자 영문 단일 행 방식 다중 행 방식 ^ carrot 문자열의 시작 행의 시작 $ dollar 문자열의 끝 행의 끝 24.1.1.3 수량사 수량사(quantifier)는 선행 표현식의 일치 횟수를 지정한다. 패턴을 최대로 일치시키는 탐욕적(greedy) 방식으로 동작한다. 연산자 설명 ? 0회 또는 1회 일치 * 0회 또는 그 이상의 횟수..