본문 바로가기

db5

보안을 강화하는 서버 아웃바운드 트래픽 통제 및 관리 필요성 서버의 아웃바운드 트래픽 통제는 보안 관점에서 매우 중요한 요소입니다. 이를 설득하기 위한 논리는 다음과 같습니다.1. 내부 정보 유출 방지서버가 침해될 경우, 공격자는 쉽게 내부 정보를 외부로 유출할 수 있습니다. 이는 회사의 기밀 정보, 고객 데이터, 재무 정보 등 민감한 데이터가 포함될 수 있습니다.설득 논리:아웃바운드 트래픽을 통제함으로써, 침해된 서버에서 외부로 데이터가 유출되는 것을 방지할 수 있습니다. 이는 정보 유출로 인한 금전적 손실과 평판 손상을 막는 데 필수적입니다.사례: 여러 기업들이 내부 정보 유출로 인해 큰 피해를 입은 사례가 있으며, 이러한 사례를 통해 회사의 임원들을 설득할 수 있습니다.2. 악성 코드 및 봇넷 활동 차단공격자가 서버를 침해하면, 악성 코드를 설치하고 이를 통.. 2024. 11. 10.
API, Database Credential 및 JWT Token 보호 조치 JWT (JSON Web Tokens)와 PostgreSQL 데이터베이스 크리덴셜 유출은 심각한 보안 문제를 일으킬 수 있습니다. 특히 JWT의 경우, 서명 키(Signing Key)가 유출되면 악의적인 사용자가 유효한 토큰을 생성하여 시스템에 무단으로 액세스할 수 있으므로, 이에 대한 철저한 보호 조치가 필요합니다. 다음은 JWT 서명 키와 PostgreSQL 데이터베이스 크리덴셜의 보안을 강화하기 위한 몇 가지 핵심 조치입니다.JWT 서명 키 보호강력한 키 생성: 서명 키는 충분히 길고 무작위로 생성되어야 합니다. 공격자가 예측하거나 브루트 포스 공격으로 찾아낼 수 없는 수준이어야 합니다.키 관리 시스템 사용: AWS KMS, HashiCorp Vault와 같은 키 관리 시스템을 사용하여 서명 키를 .. 2024. 5. 5.
전통적인 Web-DB 구조에서 Web-WAS(API)-DB 아키텍처로의 전환 전통적인 web-db 구조 대신 web-was(api)-db 구조로 운영하는 것은 여러 보안 이점이 있습니다. 이러한 아키텍처는 분리된 레이어를 통해 보안을 강화하며, 각 레이어가 서로 다른 보안 요구 사항과 위험을 관리할 수 있도록 합니다. 특히 API를 사용하는 경우, 보안 위험을 줄이고 보안 설정의 정확성을 높일 수 있습니다. 관리의 용이성: WEB/WAS 구조에서는 웹 서버와 WAS가 분리되어 있어 서버 관리 및 장애 대응이 더욱 용이합니다. 웹 서버와 WAS의 역할이 구분되어 있기 때문에 관리 및 유지보수가 더 쉽고, 장애 발생 시 대처 방안도 명확해집니다. 안정성 및 가용성: 이중화를 통해 안정성을 높일 수 있습니다. 웹 서버와 WAS가 분리되어 있으면, 하나의 시스템에 문제가 발생해도 다른 .. 2024. 3. 11.
벡터(Vector) DB 로컬환경 Docker 구성하고 데이터 추가 및 쿼리 벡터 DB를 로컬 환경에서 Docker를 사용하여 설정하고 데이터를 쿼리하는 과정을 단계별로 설명하겠습니다. 단계 1: Chroma DB GitHub 저장소 복제 Chroma DB를 로컬 머신으로 가져오기 위해 GitHub 저장소를 복제합니다. 이 저장소는 Chroma DB의 소스 코드를 포함하고 있습니다. 아래 명령어를 사용하여 저장소를 복제합니다. git clone https://github.com/chroma-core/chroma 이 명령어를 실행하면 현재 작업 디렉토리에 "chroma" 디렉토리가 생성되고 그 안에 Chroma DB 소스 코드가 복제됩니다. 단계 2: Docker를 사용하여 Chroma 실행 Chroma DB를 Docker 컨테이너로 실행합니다. Docker를 사용하면 Chroma.. 2023. 11. 10.
Tomcat JSP DB(Oracle) 연동 소스코드 - 다른 방법 executeUpdate() // select => executeQuery() rs = stmt.executeQuery(query); while(rs.next()){ out.println(rs.getInt("empno")+" : "); out.println(rs.getString("ename")+" : "); out.println(rs.getInt("deptno")+" "); } } catch(NamingException ne) { out.println("설정명을 찾을 수 없습니다."); } catch(SQLException se) { out.println(se.toString()); } finally { //닫을때는 맨마지막에 열린것부터 닫는다. if(rs != null) rs.close.. 2009. 6. 18.
728x90