SQL Injection SQL Injection이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위이다. 이는 비교적 쉬운 방법이면서도 성공시 큰 피해를 입힐 수 있는 공격이다. 클라이언트가 입력한 데이터를 제대로 필터링 하지 못하는 경우에 발생한다. SQL Injection의 예시이다. - 각 클라이언트가 자격증 번호를 조회하는 시스템 - SQL 진행은 anjinma 클라이언트가 '자격증 번호 조회'를 클릭하여 anjinma라는 이름이 웹 서버에 전송되면 DB 입력값과 비교한 다음 일치하면 자격증 DB를 출력해준다. - 여기서 blackhat 이 anjinma의 자격증 번호를 조회하기 위해 SQL문을 수정하지..
렌더링은 웹 페이지 접속 시 페이지를 화면에 그려주는 것 이라고 이전 게시물에 설명을 해놨다. 렌더링 종류 렌더링은 서버로부터 받아와 전체페이지를 렌더링하는 서버사이드 렌더링(SSR)과 클라이언트에서 필요한 부분만 렌더링하는 클라이언트 사이트 렌더링(CSR)로 구성된다. SSR(Server Side Rendering) - 서버 영역에서 렌더링 과정을 수행하는 것 - 사용자가 웹 페이지에 접속하면 서버로 해당 페이지에 대한 요청이 진행 되고 서버에서는 필요한 html, css,js 를 이용해서 페이지를 서버에서 렌더링한 다음 클라이언트로 보내주는 것이다. 즉, 서버에서 완전한 html 페이지를 직접 만들어서 제공한다. - 동작 원리 사용자가 웹 페이지를 방문하면, 서버는 리소스를 확인하고 페이지 내에 있는..
이전에 했던 웹 동작 방식은 사용자가 url을 입력한 후 url을 서버로 어떻게 받는지를 봤다면 브라우저 동작 방법은 url을 입력했을 떄 어떤 과정을 거쳐 브라우저 페이지가 화면에 보이는 지에 대한 방법이다. 브라우저는 사용자가 선택한 자원을 서버에 요청한 뒤 브라우저에 표기한다. 자원은 html, pdf, 이미지 등 다양한 형태로 이뤄져 있고, 자원의 주소는 URL에 의해 정해진다. 브라우저가 가진 인터페이스는 보통 URL을 입력하는 주소 표시줄, 이전.다음 버튼, 북마크, 새로고침 버튼, 홈 버튼 등이 있다. 브라우저 기본 구조 브라우저 엔진 사용자 인터페이스와 렌더링 엔진 사이의 동작 제어 렌더링 엔진 요청한 콘텐츠 표시 (html 요청이 들어오면? → html, css 파싱해서 화면에 표시) 통..
웹의 동작 방식을 단순히 말하자면 "클라이언트가 서버에 요청을 보내면 서버는 요청에 대한 응답을 해준다." 로 정리 할 수 있다. 하지만 클라이언트와 서버 두개만 있다고 웹이 동작하는 것이 아니라 추가로 다양한 요소들이 필요하다. 쉽게 예를 들어 말하자면, 레스토랑에 손님이 들어온다. 손님은 종업원에세 음식을 주문하고 종업원은 요리사에서 주문서를 전달한다. 그러면 요리사는 음식을 조리한다. 요리가 끝나면 요리사는 종업원에게 요리를 전달하고 종업원은 손님에게 음식을 준다. 여기서 종업원 = 웹 클라이언트, 요리사 = 웹 서버라고 생각한다면 손님(사용자)의 음식(페이지)주문을 확인한 종업원(웹 클라이언트)이 요리사(웹 서버)에 요청(Request)를 보내면, 요리사(웹 서버)는 해당 요청(Request)에 ..
OSI 7계층 네트워크 통신이 일어나는 과정을 7단계로 나눈 것이다. 통신이 일어나는 과정을 단계별로 파악하고, 통신 과정 중에 문제가 생길 경우 해당 단계를 확인하고 해결하기 위함이다. 계층별로 프로토콜을 개발해 네트워크 구성 요소들을 모듈화 할 수 있다는 장점이 있다. 상하구조를 가지기 때문에 상위 계층의 프로토콜이 제대로 작동하기 위해서 하위의 모든 계층에 문제가 없어야 한다. OSI 7계층은 다시 두가지 계층으로 나눌 수 있다, 1~4 계층 : 데이터 플로 계층 (Data Flow Layer) / 하위 계층 (Lower Layer) 5~7 계층 : 애플리케이션 계층(Application Layer) / 상위 계층 (Upper Layer) 데이터 플로 계층의 목표는 데이터 잘 쪼개고 받는 역할을 중..
정규화 (Normalization) - 목표: 테이블 간에 중복된 데이터를 허용하지 않는 것이다. - 중복된 데이터를 허용하지 않음으로 무결성을 유지 - null 값 최소화 -데이터 구조 안정성 최대화 * 무결성 : 데이터의 정확성, 일관성, 유효성이 유지되는 것 정규화 과정 이 테이블을 보면 학번과 이름이 학생을 식별하는 기본키이지만 이름과 과목에 중복된 정보가 있다. 중복을 최소화 하기 위해 1NF, 2NF, 3NF, BCNF 등이 있다. 이와 같이 진행되며 보통 1NF ~ 3NF 까지 진행하거나 BCNF 단계까지 진행한다고 한다, 함수적 종속: X의 값에 따라 Y값이 결정될 때 X -> Y로 표현하는데, 이를 Y는 X에 대해 함수적 종속 이라고 한다. 예를 들어 학번을 알면 이름을 알 수 있는데, ..
이상현상 데이터 베이스에서 데이터의 일관성, 무결성 또는 정확성과 관련된 문제 또는 오류를 나타내는 용어. 데이터의 무결성을 유지하려다 발생하는 문제로 삽입이상, 갱신이상, 삭제이상 이 있다. 이상현상은 정규화를 통해 방지 할 수 있다. 삽입 이상(Insertion Anomaly) -새 데이터를 삽입할 때 발생하는 문제 -특정 행을 추가하려면 행에 연관된 다른 속성들도 함께 제공 해야 되는데, 이것이 불가능하거나 부정확하면 데이터 베이스에 삽입 할 수 없어서 원하지 않는 필드의 값도 넣어야됨 위와 같이 1,2,3번 필드에 대한 값만 넣고 싶지만, 테이블이 4개의 필드로 구성되어 있기 때문에 4번 필드에 불필요한 값이 필요할 때 갱신 이상(Update Anomaly) -데이터의 갱신 또는 수정 시 발생하는..
CPU 스케줄링 현재 실행 중인 프로세스로부터 다른 프로세스로 CPU를 넘겨주어야 할 때, 기다리고 있는 여러 프로세스 중에 어떤 프로세스를 결정하는 것 스케줄링의 세가지 시점 장기 : 어느 작업을 커널에 등록시켜 프로세스로 만들어 줄 것인가를 결정. 중기 : 보류준비 중인 상태의 프로세스들 중에서 어느 프로세스에 메모리를 할당해 줄 것인가를 결정 단기 : 준비 상태의 프로세스들 중에 어느 프로세스들에세 메모리를 할당해줄 것인가를 결정 스케줄링 평가 기준 사용자 관점 응답 시간 : 프로세스의 요청에 대해 시스템이 최초로 출력을 내주기 시작할 때까지 걸리는 시간 ( 프로세스가 들어와서 끝날때까지 걸리는 시간) 반환 시간 : 요청으로 부터 결과를 돌려 받는 데까지 걸린 시간 예측 가능성 : 요청한 일이 얼마..