본문 바로가기

반응형

Backend/Web

(9)
[Security] Blind SQL Injection Blind SQL Injection이란? Blind SQL Injection  공격은 쿼리의 결과를 참과 거짓으로만 출력하는 페이지에서 사용되는 공격으로, 출력 내용이 참과 거짓밖에 없어서 이를 이용해 데이터베이스의 내용을 추측하여 쿼리를 조종하는 공격이다. 공격 방법 중 한가지는 데이터베이스(DB)에서 xp_cmdshell 기능의 활성화가 가능했고, 시스템 명령(system command)을 실행할 수 있었다. 그런 다음 DNS-based exfiltration을 통해 시스템 명령의 출력을 얻을 수 있었다. 하지만 내가 겪은 공격은 시간 기반 SQL Injection 공격으로 단순히 시간지연을 통해 DoS공격과 같은 SQL Injection공격이었다. DB 종류구문MySQLselect BENCHMARK..
[CSS] 하위 요소 적용 및 단어단위로 줄바꾸기 bodyViewBody클래스의 직계 자식요소들에 적용 bodyViewBody클래스의 모든 하위 자식요소들에 적용   줄바꿈과 관련된 속성 및 태그white-space속성줄바꿈, 공백 여부 설정word-break속성줄바꿈을 할때 단어를 기준으로 설정하는 속성overflow-wrap속성의미가 없는 텍스트 줄바꿈 설정hyphens속성텍스트 줄바꿈 할때 하이픈으로 연결하는 방법 설정태그텍스트 줄바꿈태그의미가 없는 텍스트 줄바꿈태그공백속성(Property) 속성값값(예)설명normalword-break: normal;기본 줄바꿈 규칙 적용keep-allword-break: keep-all;줄바꿈 할 때 단어를 유지하며 적용break-allword-break: break-all;CJK(중국어,일본어,한국어) ..
[Web] about API 웹에 대한 기초가 없이 개발을 시작하다 보니 REST API가 무엇인가 하는 의문이 남아있었다.어떻게 만드는지는 알지만 왜 가 빠져 있는 상태이다. 그래서 약간의 짬이 생겼을 때 공부하려고 한다. Spring Controller에서 구현할때 API를 RestFul한 방식으로 구현한다고 한다. 그리고 우리는 Mapping하는 값으로 URL을 지정한다. 그래서 나타난 질문 API와 Domain의 차이가 뭘까? 거기에 URL은 무엇을 의미하는 걸까?예시는 다음과 같다.예) https://www.example.com/path/to/resource?query=example#section      127.0.0.1:8080/path/to/resource?query=example#section- Domain : IP..
[보안 취약점] PRG 패턴 (Post-Redirect-Get Pattern) 로그 아웃 후 캐시를 초기화 하지 않아 로그인 되었던 화면이 남아있는 이슈가 있었다.필터에서 캐시 초기화 진행뒤로가기 해도 정보가 넘어가게(양식 다시 제출 방지용)근데 session이나 cookie에 담는 것은 왜 안했을까? PRG 패턴 (Post-Redirect-Get Pattern)PRG패턴은 Post를 이용해 리소스에 대한 변경 요청이 있을때 해당 요청에 대해 재요청시 Post가 아닌 Get으로 Redirect되는 패턴이다. 웹 개발시 권장되는 디자인 패턴이다.이게 왜 중요하냐면 Post를 이용해 데이터를 전송하게 되는데 그 요청을 계속해서 재요청하게되면 동일한 데이터를 계속해서 전송하게 되기 때문이다.예를 들면 상품등록시 상품을 등록하는 요청에 대해 새로고침만 해도 해당 데이터가 전달되게 된다. ..
[CSRF]About CSRF CSRF란? CSRF(크로스 사이트 요청 위조, Cross-Site Request Forgery)는 웹 애플리케이션의 보안 취약점 중 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행동을 웹 애플리케이션에 대해 수행하도록 만드는 공격 기법. XSS공격과 세트로 공격이 발생하는 경우가 많다. CSRF 동작 원리 사용자가 웹 애플리케이션에 로그인하여 세션 쿠키를 받는다. 공격자는 악의적인 요청을 만들어, 사용자가 클릭하거나 방문할 수 있는 웹 페이지나 이메일 메시지에 삽입한다. 공격자가 삽입한 링크를 통해 사용자의 브라우저는 사용자의 세션 쿠키를 사용하여 공격자가 준비한 악의적 요청을 웹 애플리케이션에 전송한다. 웹 애플리케이션은 이 악의적 요청을 정상적인 사용자의 요청으로 인식하고, 요청된 작..
[HTTP] 상태 코드 에러 코드 정의 - HTTP Status Code ✅1XX: Informational(정보 제공) 상태 코드 상태 텍스트 한국어 뜻 서버 측면에서의 의미 1XX Informational 정보 제공 클라이언트의 요청을 받았으며 작업을 계속 진행하고 있다. 1xx 계열의 응답은 HTTP/1.1 클라이언트에게만 보낼 수 있으며 응답은 바디 없이 상태 라인, 헤더(생략 가능), 빈 줄로 종료됩니다. 100 Continue 계속 계속 진행하라. 클라이언트는 요청 헤더에 ‘Expect: 100-continue’를 보내고 서버는 이를 처리할 수 있으면 이 코드로 응답합니다. 101 Switching Protocols 프로토콜 전환 프로토콜을 전환하라. 프로토콜을 HTTP 1.1에서 업그레이드할 때 Upgrade 응답..
[Api] API문서 작성 API문서 작성용 스웨거 에디터 https://editor.swagger.io/ Swagger Editor editor.swagger.io API Document 작성 STS3사용 중이고 스프링 버전이 낮아 Swagger2로 API 명세서를 작성하려고 한다 먼저 pom.xml에 의존성 추가 io.springfox springfox-swagger-ui 2.9.2 io.springfox springfox-swagger2 2.9.2 SwaggerConfig클래스 생성 package ncdc.cancermonitor.cmmn; import java.util.HashSet; import java.util.Set; import org.springframework.context.annotation.Bean; impo..
[Api] Open API 디자인 API 란? 운영체제, 시스템, 애플리케이션, 라이브러리 등을 개발자들이 프로그래밍 작업을 통해 응용 프로그램을 작성할 수 있는 다양한 인터페이스들을 총칭한다. (예: Window API, Java API, HTML5 API, Android API…) 오픈 API 란? API 중에서 플랫폼의 기능 또는 컨텐츠를 외부에서 쓸 수 있도록 웹 프로토콜(HTTP)로 호출할 수 있도록 개방(open)한 API를 의미한다. 네이버 개발자센터에서 제공하고 있는 지도, 검색을 비롯 기계번역, 캡차, 단축 URL 등 대부분 API 들은 HTTP로 호출할 수 있는 오픈 API에 해당한다. 네이버와 카카오 API 확인하기 NAVER Open API(https://developers.naver.com 참조) 이전(2015년 ..

반응형