분류 전체보기
-
3.SQL InjectionComputer Science/Database 2021. 9. 28. 16:52
∙SQL Injection ∘해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법 ➀인증 우회 -input 창에 비밀번호를 입력함과 동시에 다른 쿼리문을 함께 입력한다. -기본 쿼리문의 WHERE 절에 OR문을 추가하여 true문을 작성해 DB를 조작한다. ->input 값을 받을 때, 특수문자 여부를 검사한다. ->preparestatement를 사용하면 특수문자를 자동으로 escaping 해준다. ➁데이터 노출 -일부로 에러를 발생시켜 에러 메시지를 분석해 데이터베이스 구조를 유추한다. ->일반 사용자는 view로만 접근하여 에러를 볼 수 없도록 만든다. -View: 하나 이상의 테이블에서 유도된 가상 테이블 출처 링크
-
2.JoinComputer Science/Database 2021. 9. 17. 16:58
∙Join ∘두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법 ➀INNER JOIN -교집합으로, 기준 테이블과 join 테이블의 중복된 값을 보여준다. SELECT * FROM A INNER JOIN B ON A.c = B.c ➁LEFT OUTER JOIN -기준 테이블과 join 테이블의 중복된 값을 보여준다. SELECT * FROM A LEFT OUTER JOIN B ON A.c = B.c ➂RIGHT OUTER JOIN -기준 테이블과 join 테이블의 중복된 값을 보여준다. SELECT * FROM A RIGHT OUTER JOIN B ON A.c = B.c ➃FULL OUTER JOIN -합집합으로, 기준 테이블과 join 테이블의 모든 데이터가 검색된다. SELECT ..
-
-
1.KeyComputer Science/Database 2021. 9. 13. 15:46
∙DBMS(Data Base Management System) ∘다수의 사용자가 데이터베이스내의 데이터를 접근할 수 있도록 설계된 시스템 ○UML(Unified Modeling Language) -이해하기 힘든 복잡한 시스템을 의사소통하기 위해 프로그램 설계를 그림으로 표기하는 방법 ○정규화 -데이터 중복을 최대한 줄여 데이터를 구조화하고 논리적으로 저장하는 방법 ○무결성 -테이블에 있는 모든 행들이 유일한 식별자를 갖는 특성 -외래키 값은 NULL이거나 참조 테이블의 PK 값이어야 한다. -데이터 생성 수정 삭제 시 무결성 조건을 검증하여 보장한다. ○트리거 -자동으로 실행되도록 정의된 저장 프로시저 -프로시저: SQL 서버에서 제공하는 프로그래밍 기능 -생성 수정 삭제에 대한 응답을 자동으로 호출한다..
-
8.Blocking I/O, Non-Blocking I/OComputer Science/Network 2021. 9. 9. 16:22
∙Blocking I/O ∘Process(Thread)가 Kernel에게 I/O를 요청하는 함수를 호출하여 Kernel이 작업을 완료하면 결과를 반환 받음 -I/O 작업이 진행되는 동안 user process(thread)는 자신의 작업을 중단한 채 대기한다. -Resource 낭비가 심하다. -여러 클라이언트가 접속하는 경우 클라이언트별로 thread를 생성해서 context switching이 증가한다. ∙Non-Blocking I/O ∘I/O 작업이 진행되는 동안 user process의 작업을 중단하지 않음 ➀user process가 recvfrom 함수를 호출하여 커널에게 해당 socket의 data를 요청 ➁커널은 곧바로 recvBuffer을 채우지는 못하고 EWOULDBLOCK을 return..
-
7.로드 밸런싱(Load Balancing)Computer Science/Network 2021. 9. 8. 23:50
∙로드 밸런싱 ∘둘 이상의 CPU 또는 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 기법 -Load Balancer를 클라이언트와 서버 사이에 두고, 부하가 일어나지 않도록 여러 서버에 분산시켜준다. ➀Round Robin: 우선순위를 두지 않고, 순서대로 시간단위로 할당하는 방법 ➁Least Connections: 연결 개수가 가장 적은 서버를 선택하는 방법 ➂Source: 사용자 IP를 해싱하여 특정 사용자가 항상 같은 서버로 연결되도록 분배하는 방법 -Load Balancer에 문제가 생길 수 있기 때문에 이중화하여 대비한다 (Active 상태와 Passive 상태). 출처 링크
-
6.HTTP(HyperText Transfer Protocol), HTTPS(HyperText Transfer Protocol Secure)Computer Science/Network 2021. 9. 7. 15:22
∙HTTP ∘인터넷 상에서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신 규약 -TCP->HTTP -HTTP는 텍스트 교환이므로 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재 ∙HTTPS ∘인터넷 상에서 클라이언트와 서버가 자원을 주고받을 때 정보를 암호화하는 SSL 프로토콜을 사용하는 통신 규약 -TCP->SSL->HTTP -HTTPS는 텍스트를 공개키 암호화 방식으로 암호화한다. ➀애플리케이션 서버를 만드는 기업 A는 HTTPS를 적용하기 위해 공개키와 개인키를 만든다. ➁신뢰할 수 있는 CA 기업에게 내 공개키 관리를 계약한다. ➂CA기업은 A의 이름, 공개키, 암호화 방법을 담은 인증서를 만들고 CA 기업 개인키로 암호화해서 준다. ➃A서버는 공개키로 암호화된 HTTPS..
-
5.대칭키(Symmertric Key), 공개키(Public Key)Computer Science/Network 2021. 9. 6. 16:36
∙대칭키 ∘암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 -동일한 키를 주고받기 때문에 매우 빠르다 -대칭키 전달과정에서 해킹 위험이 있다. ∙공개키 ∘암호화와 복호화에 사용하는 암호키를 분리한 알고리즘 -자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화 할 수 있는 암호키(공개키)를 공개한다. ➀A가 웹 상에 공개된 B의 공개키를 이용해 평문을 암호화하여 B에게 보냄 ➁B는 자신의 비밀키로 복호화한 평문을 확인, A의 공개키로 응답을 암호화하여 A에게 보냄 ➂A는 자신의 비밀키로 암호화된 응답문을 복호화함 -대칭키의 단점을 해결했지만, 암호화하는 키와 복호화하는 키가 서로 다르기 때문에 매우 복잡하다. ∙대칭키와 공개키 혼합 ∘대칭키를 주고받을 때만 공개키 암호화 방식을 사용하고 이후에..