본문 바로가기

SAN의 성장일지193

[웹] CSRF (Cross Site Request Forgery) # CSRF (Cross Site Request Forgery) [ 보고 공부한 사이트 ] https://dreamhack.io/?obj=11 2022. 1. 28.
[웹] XSS XSS : 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있다. 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있다. XSS는 SOP 보안 정책이 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 이전에 비해 힘들어졌다. 하지만 이를 우회하는 다양한 기술이 소개되며 여전히 XSS 공격이 지속되고 있다. 클라이언트는 HTTP형식으로 웹 서버에 리소스를 요청하고 서버로부터 받은 응답, 즉 HTML, CSS, JS등의 웹 리소스를 시각화하여 이용자에게 보여준다. 이때 HTML, CSS, JS와 같은 코드가 포함된 게시물을 조회할 경우 이용자는 변조된 페이지를 보거나.. 2022. 1. 27.
[스프링 스터디] 3주차 - 스프링 핵심 원리.기본편 # 참고 강의 스프링 핵심 원리 : 김영한님 # 공부한 코드를 올린 Github https://github.com/anso33/SpringStudy_second.git # EJB (Enterprise Java Bean) EJB의 비전 : EJB는 애플리케이션 개발을 쉽게 만들어준다. 애플리케이션의 개발자는 로우레벨의 기술에 관심을 가질 필요가 없다. 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델 많은 동시접속자에 대한 안정성 지원 안정적인 데이터 조작 >> 동시접속자가 많은 동시에 안정적인 트랜젝션이 필요한 사이트 구축시에 사용 ex) 공공기관, 금융, 포털사이트 게임사이트, 기업 등등 지금도 그런지는 모르겠 - 문제점 객체지향적이지 않다. 프로그래밍 모델이 복잡하다. 특정 환경, 기술에 종속.. 2022. 1. 25.
[웹] 1. Cookie & Session http 프로토콜 : 웹 서버와 통신할 때 웹 서버에 명령을 내리기 위해 GET, POST와 같은 메소드와 자원의 위치를 가리키는 URL등이 포함되어 있으며 이외에도 헤더를 통해서 웹 서버에 요청을 보내고, 웹 서버는 헤더를 읽고 클라이언트에게 결과값을 반환. 이때 헤더에는 클라이언트의 정보와 요청의 내용을 구체화하는 등의 데이터가 포함되며, 이는 클라이언트의 인증 정보 또한 포함될 수 있다. 쿠키와 세션은 클라이언트의 인증 정보를 포함하고 있다. 쿠키 - 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용 - 클라이언트의 IP 주소와 User-Agent는 매변 변경될 수 있는 고유하지 않은 정보이다. 2022. 1. 25.
[스프링 스터디] 2주차 - 스프링 입문 # 1주차 정리 내용 2022.01.13 - [컴퓨터 언어/Spring | SpringBoot] - [스프링 스터디] 1주차 - 스프링 입문 # 2주차 정리 내용 05. 회원 관리 예제 - 웹 MVC 개발 스프링 컨테이너에 관련된 컨트롤러가 없으면 정적 컨텐츠의 내용을 전달한다. >> 컨트롤러가 정적 파일보다 높은 우선순위를 가진다. 06. 스프링 DB 접근 기술 + 순수 JDBC (Plain JDBC, Java DataBase Connectivity) JDBC : 자바 프로그램이 DB와 연결되어 데이터를 주고 받을 수 있게 하는 프로그래밍 인터페이스 - JAVA 기반 앱에서 JDBC-API -> JDBC driver를 통해 DB에 접근한다. - 함수 호출용 SQL 인터페이스 - 공통된 SQL 인터페이스.. 2022. 1. 20.
[ft_printf] 2. 가변인자 (variadic arguments) # 가변인자 (variadic arguments) : 매번 함수에 들어가는 인수의 개수가 변하는 것 - 최소 한 개의 정해진 자료형의 매개변수가 필요하다. (변수값을 넣을 문자열) va_list : 가변 인자 목록 #include va_list ap; - 가변 인자의 메모리 주소를 저장하는 포인터 va_start : 가변 인자를 가져올 수 있도록 포인터를 설정 #include void va_start(va_list ap, last); - ap의 시작 위치를 함수에 주어진 마지막 고정 인자(last) 다음으로 초기화 - 가변 인자에 접근하기 전에 va_start를 호출해야한다. (일반적으로 함수 시작부분에 호출) va_end : 가변 인자 처리가 끝났을 때 포인터를 NULL로 초기화 #include voi.. 2022. 1. 16.
[ ft_printf ] 3. printf의 버퍼 관리 방법 (표준 입출력과 버퍼 | 스트림과 데이터 이동) # 입력과 출력 + 입력 : 프로그램 안으로 데이터가 들어오는 것 ex) 키보드, 파일, 마우스 ... + 출력 : 프로그램 밖으로 데이터가 나가는 것 ex) 모니터, 파일, 프린터 ... # 스트림 + 스트림(stream) : 한 방향으로 흐르는 데이터의 흐름 - 한 방향으로만 데이터의 전송이 이뤄진다. - 프로그램에서 데이터를 입출력하기 위해 입력장치, 출력장치를 프로그램과 연결시켜 주는 다리 역할을 하는 매개체 - 운영체제에서 제공하는 소프트웨어로 구현된 가상의 다리 - 외부장치와 프로그램 사이의 데이터 송수신 도구 + 스트림의 생성과 소멸 키보드와 모니터등등의(콘솔) 연결을 위한 스트림의 생성은 자동으로 생성된다. 즉, 콘솔 입출력을 위한 입-출력 스트림은 프로그램 실행시 자동으로 생성되고, 종료.. 2022. 1. 15.
[웹] 0. 웹 기초 # 인코딩 ex) 아스키(Ascii), 유니코드(Unicode) ... + Ascii : 7비트 데이터에 대한 인코딩 표준 : 알파벳과 특수 문자 표현 가능 + Unicode : 모든 언어의 문자를 하나의 표준에 담음. : 한 문자는 최대 32개의 비트로 표현 : 한글, 한자, 히라가나, 알파벳 그리고 이모지(emoji)까지. 모두 포함하고 있다. # 통신 프로토콜 + 프로토콜 : 규격화된 상호작용에 적용되는 약속 - 컴퓨터와 통신할 때는 엄격한 프로토콜(약속)이 필요하다. 컴퓨터가 해석의 융통성을 발휘하게 하는 것이 매우 어렵고 통신 오류가 발생할 가능성이 높아지기 때문이다. 따라서 문법(syntax)를 두고 이 문법을 벗어나는 메세지는 잘못 전송된 것으로 취급한다. - 프로토콜 ex) : TCP/IP.. 2022. 1. 14.
[스프링 스터디] 1주차 - 스프링 입문 # 참고 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 : 김영한님 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard # 공부한 코드를 올린 github https://github.com/anso33/SpringStudy_first.git # 1주차 정리 내용 01. 프로젝트 환경설정 + 일반적으로 처음 프로젝트를 생성할 때 스프링부트 스타터를 이용한다. 보다 쉽게 build.gradle 파일을 완성할 수 있다. - 스프링부트 스타터 : https://start.spring.io *.. 2022. 1. 13.