전체 글 65

HTTPS

대칭키하나의 키암호화/복호화 할 때 서로 키가 같은경우이다. =>  해당 키를 전달하기 위해 평문에 노출될 수 있는 단점 비대칭키(공개키) 한 쌍의 키 (두개)  => 하나는 암호화만 가능, 다른 하나는 복호화만 가능암호화할때와 복호화할 때 키가 서로 다른경우이다.(클라이언트가 A키, 서버가 B키 가지고 있을 때ㅡ  A키로 암호화한 경우 B키로만 복호화가 가능하고 B키로 암호화한 경우 A키로만 복호화가 가능하다.  /*공개키는 공개된 곳에 올려놓고 모두 가져가도록 해도 된다.공개키로 암호화해도 풀 수 있는 것은 개인키(비밀키)만 가능하기 때문이다.*/  HTTPS HTTP 프로토콜에서 암호구간(TLS/SSL)을 얹은 프로토콜TCP 3-way hand shake가 클라이언트와 서버 간에 연결을 설정하여 안..

Github 기본

Git 과 Github 1)Git - 로컬에서 관리되는 버전 관리 시스템 (시간에 따라 파일의 변경사항을 추적하고 기록)  - 로컬 저장소를 사용하기 때문에, 다른 사람이 나의 작업 내용을 알 수 없음   2)Github- 개인의 로컬 서버 밖에서 Git 버전 프로젝트를 공유하고 기록하는 온라인 데이터 베이스 - 원격저장소(서버에 있는 저장)를 깃허브에서 제공해주는 클라우드 서버를 이용- 클라우드 서비스기 때문에 다른 사람들과 협업 시 소스코드 공유가 가능하다.   Github  기본 용어 Repository프로젝트가 존재하는 저장 공간 Branchmaster branch에서 각 개발자나 기점 별로 새로운 branch를 만들어서 분업하는 기능 혹은 공간서로 다른 branch에 영향을 주지 않아 Repo에..

OpenAI Assistant API 및 응답

OpenAI Assistant APIOpenAI의 Assistants API는 애플리케이션 내에 AI 기반 어시스턴트를 만들 수 있는 Toolkit 개발자들은 코드 해석기(Code Interpreter), 검색(Retrieval), 기능 호출(Function calling)과 같은 Tool을 이용하여 사용자의 요구사항을 이해하고, 반응을 예측하며, 상호작용적으로 참여하는 AI 어시스턴트를 구축할 수 있다.  이 API는 자연어 처리 기능을 통해 사용자의 입력을 이해하고, 적절한 작업을 수행할 수 있는 AI 어시스턴트를 제작하는 데 필요한 모든 기능을 제공한다.=> AI 어시스턴트를 특정한 용도를 정하고 해당 용도에 맞는 데이터를 제공할 수 있다.   Assistants API의 Tools 1) 코드 해석..

GET,POST 그리고 Content-type / Postman

GET /  POST MethodGETPOST목적서버에서 데이터를 조회 시 사용데이터 생성 및 업데이트 시 사용데이터전송방식HTTP 패킷 Header에 데이터를 담아URL의 query string을 통해 전송HTTP 패킷 Body에 데이터를 담아URL에 포함되지 않고 Body를 통해 전송멱등성데이터를 조회할 때 사용하므로여러 번 요청하더라도 응답이 같다.데이터를 생성하고 업데이트 시 사용하므로 서버(안  데이터)가변경될 수 있어 여러 번 요청 시 결과가 달라질 수 있다.데이터크기간단한 데이터큰 데이터보안URL에 데이터가 노출URL에 노출되지 않아 상대적으로 안전캐싱브라우저에 캐시가능하다.브라우저에 캐시되지 않는다.예시/sendMessage?user_input=hello/sendMessage (바디에 담겨..

Python Flask 웹 서버 실행

웹페이지 틀을 구성하는 프론트 엔드페이지에 대한 데이터를 Logic에 맞게 넣어주는 백엔드 및 데이터베이스 등=> REST API를 사용해서 이러한 컴퓨터들 사이에서 http 데이터 요청을 해서 응답 데이터를 화면에 출력시키는 구조다. Flask 플라스크는 파이썬으로 작성된 마이크로 웹 프레임워크웹 애플리케이션을 구축하는 데 필요한 핵심 기능을 제공하는 데 중점을 둔 단순하고 미니멀한 디자인 특정 도구나 라이브러리를 강요하지 않는다는 점에서 '마이크로'라는 원칙을 따른다.나머지 기능은 자신이 원하는 다른 라이브러리나 프레임워크를 확장해 사용  __name__? 파이썬에서 디폴트로 있는 해당 변수는 모듈로서 실행될 때 모듈(라이브러리)의 이름이 저장된다. (abc.py이면 abc)모듈이 아닌 실행되는 코드..

0.웹에 관한 중요 키워드

웹 브라우저Chrome, Safari, Opera 등 웹 사이트를 볼 떄 사용하는 소프트웨어서버서비스를 제공하는 컴퓨터(서비스에 따라서 앞에 웹, DB 등 붙을 수 있다.)클라이언트서버에게 서비스를 제공받는 컴퓨터( 언제든 서버가 될 수 있고 클라이언트가 될 수 있다.)HTTP클라이언트와 서버가 HTML을 주고받기 위해 생긴 통신하는 프로토콜, 요즘에는 HTML 이외에 많은 데이터를 주고받을 수 있다.IP컴퓨터의 집 주소DomainIP의 별명DNS (Domain Name System)도메인과 IP 주소를 매칭해놓은 서버(웹 브라우저가 서버의 집주소를 DNS 서버에게 먼저 물어본다.)nslookup 시 여러 개의 주소가 나오는 이유는 부하분산을 위한 것Port서비스마다 고유의 번호를 설정해놓은 것서비스 설..

http 헤더 및 DDoS 관련

- 보통 관제는 탐지패턴에 의해 탐지하는 형태이다보니 무엇이든 정오탐을 빠르게 판별하는 게 우선이다.- 가장 위험한 것으로 생각되는 공격은 DDoS, 랜섬웨어, 파일 업로드 취약점(특히 웹 쉘), 파일 다운로드 취약점 이다. HTTP 헤더 관련 Host요청이 어떤 호스트(서버)로 가야 하는지를 지정 Referer 요청이 발생한 페이지의 URL 링크로 사용자가 현재 페이지에 도달하기 전에 방문한 페이지의 URL이다.링크를 클릭하여 웹페이지로 이동하면 Referer이 표시되며 북마크나 주소창에 URL을 입력하는 경우는  이 헤더가 존재하지 않는다. X-Fowarded ForHTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 실제(원) IP 주소를 식별하는 사실상의 표준 헤더다. 이런 형..

CSP Bypass & Javascript (Low)

CSP (Content Security Policy) 컨텐츠 보안 정책으로 각종 XSS 및 injection 공격을 비롯한 특정 유형의 공격을 탐지하고 완화하는 데 도움을 주는 추가 보안 계층이다. 누구나 인라인 자바스크립트나 CSS를 입력할 수 없도록 한다. A-src A 에 대한 설정을 바꾼다. (제어한다) ex) script-src 스크립트 권한 설정을 바꾼다. ''' none(불가능) 특정도메인 self(현재 도메인) unsafe-inline(다 가능) nonce-암호화된 문자(특정 문자값으로 script 태그 검증 ) ''' CSP Bypass (Low) -이 레벨의 소스코드에는 프로그램 내 자원들을 로드할 때 같은 오리진이나 pastebin 등의 적혀있는 도메인에서 온 자원만 허용한다. -se..

Weak Session IDs (Low)

세션과 쿠키 - 쿠키(Cookie) : 웹사이트의 서버가 사용자의 컴퓨터(클라이언트)에 저장하는 기록파일 이후 모든 요청마다 서버로 쿠키를 다시 전송한다. (로그인 정보, 비회원의 장바구니 정보) 이름,값,만료일,경로 정보로 구성되어 있다. 클라이언트 자원을 사용하기 때문에 서버 자원 낭비를 방지하고 웹사이트의 속도를 높일 수 있다. - 세션(Session) : 웹서버에 접속해 있는 상태, 서버 내부에 저장되며 세션의 키값만을 클라이언트 측에 남겨둔다. 브라우저를 닫거나 서버에서 삭제 시 삭제가 되므로 쿠키보다 보안성이 좋다. 동작원리 : 서버측은 클라이언트가 요청 시 쿠키 값을 확인 (없으면 서버에서 생성하여 돌려준다.) 클라이언트에게 세션 id를 쿠키로 저장하도록 전달한다. 쿠키 이름 : JSESSI..

XSS (Stored, Reflected, DOM) (Low)

XSS ( 교차 사이트 스크립팅) Cross-Site Scripting 약자로 사용자가 요청한 페이지에 강제로 악성 스크립트를 삽입해서 브라우저에서 악의적인 동작이 실행되도록 하는 공격기법 자바스크립트로 실행되는 모든 코드가 실행될 수 있는데 특히 사용자의 세션을 공격자의 서버로 전송해서 탈취하거나 악성코드가 있는 페이지로 리다이렉트 시키는 방식으로 공격이 주로 행해진다. XSS (Stored) XSS 취약점이 있는 웹 서버에 공격용 스크립트를 입력시켜 놓으면, 방문자가 악성 스크립트가 삽입되어 있는 페이지를 읽는 순간 방문자의 브라우저를 공격하는 방식 가장 일반적인 방법은 게시판 같은 곳에 HTML 문서에 브라우저의 쿠키값을 보여주는 스크립트를 등록하였다. 데이터베이스에 저장된 코드가 화면에 html로..