본문 바로가기

전체 글

(560)
AI 에이전트의 구조: 챗봇을 넘어서 https://notebooklm.google.com/notebook/d4c67f6c-64bb-443d-a4ff-4c157edf5a5f?artifactId=f9046ca1-9109-4c29-a732-bc6f9b94ab81 Google NotebookLM | 신뢰할 수 있는 정보에 기반한 조사 및 사고 파트너AI의 기능을 활용해 빠르게 요약하고 메모를 작성하세요. NotebookLM은 신뢰할 수 있는 정보를 기반으로 하는 강력한 가상 조사 어시스턴트입니다.notebooklm.google.com
cookie, session, jwt.. wht u wnt? 사용: https://app.diagrams.net/#참고: https://code-lab1.tistory.com/298https://code-lab1.tistory.com/196 [Web] HTTP 1.0 과 HTTP 1.1의 차이HTTP란? HTTP(Hyper Text Transfer Protocol)는 인터넷에서 주로 사용하는 데이터를 송수신하기 위한 프로토콜이다. HTTP에 대한 자세한 내용은 다음을 참고하자. [네트워크] HTTP란? non-persistent HTTP vs persistentcode-lab1.tistory.com 공통1. connectionless비연결성http는 tcp 연결을 맺는다request → response 일방적HTTP 1.0연결하고 끊어진다1회성HTTP 1.1kee..
정부 프레임워크 전자정부 프레임워크 = “감리, 보안, 운영 표준에 맞춰 정형화된 Spring 4.x 기반 프레임워크”전자정부 표준프레임워크(정부 프레임워크)는 보안, 감리, 유지보수 표준화용 안정형 프레임워크 일반 Spring Boot = “자유롭고 최신 기술 반영이 빠른 경량 프레임워크”일반 Spring/Spring Boot는 “빠르고 유연한 최신 프레임워크기본 개념구분 일반 Spring (Spring Boot) 전자정부 표준프레임워크 (eGovFrame)제작 주체Pivotal / Spring 팀행정안전부 / NIA (정보화진흥원)목적빠른 개발, 최신 기술 반영공공 시스템의 표준화·보안·감리 대응코드 구조자유로운 설정정해진 패키지, 계층, 모듈 구조배포 형태jar (내장 서버 가능)war (WAS 배포 전제, JBo..
세션 하이재킹 (Session Hijacking) 세션 하이재킹 (Session Hijacking)누군가의 세션ID를 훔쳐서 그 사람인 척 로그인 상태를 복제하는 공격예시 시나리오: 1. 당신이 로그인하면 서버는 세션ID를 쿠키로 줌Set-Cookie: JSESSIONID=ABC123; Path=/; HttpOnly 2. 공격자가 이걸 탈취하면?이걸 자기 브라우저에 붙이면…로그인된 사용자로 변신 성공Cookie: JSESSIONID=ABC123가정: "세션ID를 줘도 IP가 다르면 막으면 되지 않냐"맞아요. 일부 보호는 될 수 있어요.하지만 그거 믿고 방어하면...당신 서버는 보안은커녕 사용자 경험까지 죽입니다.☠️ 왜 IP 체크는 불완전한 보안책일까?1. 공유 IP / NAT 환경수많은 사용자들이 같은 IP 씁니다.PC방, 학교, 회사, 통신사 공유기..
파일 업로드 취약점, 디렉토리 리스팅 누가 당신 사이트에 .jsp 같은 서버 실행 파일을 업로드해서서버에서 그걸 실행시키게 만들면, 해커 입장에선 축제임. 🎉당신 서버는 이제 웹 쉘 호스팅 서비스임. 항목 해야 할 것확장자 검증.jpg, .png 등만 허용MIME 타입 체크"image/jpeg" 등 필터링파일 내용 검사Magic Number 확인저장 경로웹 루트 바깥접근 제한업로드 파일은 다운로드 전용파일명 변경UUID + 확장자실행 권한업로드 폴더에 실행권한 제거 ☠️ 보안 감사할 때 신경 써야 하는 point/uploads/에서 .jsp, .php, .exe 등 실행 가능 파일 업로드됨 → 절대 안됨Content-Disposition이 inline이고 실행됨업로드된 파일에 직접 접근 가능 → 절대 안됨 예시: 심각한 취약한 코드 (절..
SQL Injection 방지 🛡️ 1.1. SQL Injection 방지1.1.1. PreparedStatement 사용 예시stmt.setString(1, userId); // ★ 변수 바인딩 → SQL Injection 방지public User getUserById(String userId) throws SQLException { String sql = "SELECT * FROM users WHERE user_id = ?"; try (Connection conn = dataSource.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setString(1, userId); // ★ 변수 바인딩 →..
💣 XSS = Cross-Site Scripting 💣 XSS = Cross-Site Scripting웹 페이지에 **악성 스크립트 (JavaScript)**를 몰래 심어서 다른 사용자의 브라우저에서 실행시키는 공격.XSS는 해커가 너의 웹사이트를 통해 남의 브라우저를 조종하는 기회다.만약 네가 필터링을 안 해놓으면? 걔는 네 사이트를 이용해서 다른 사람들 놀리는 거임.목적 : 스크립트를 심는다 종류 설명 Stored XSS서버에 저장돼서 여러 사람에게 전파되는 타입 (댓글, 게시글 등)사용자가 write 할수있는 곳에 해커가 코드를 심는다Reflected XSSURL에 스크립트가 담겨서 즉시 실행되는 타입 (검색 결과 등)링크 버튼인데 주소가 들어가는데, 버튼을 누르면 자바스크립트가 실행시킨다DOM-based XSSJS 코드 내부에서 DOM 조작 시 ..
시큐어코딩, 정부 프레임워크, 웹취약성 정부 기관 과제를 하다보니 시큐어코딩, 정부 프레임워크, 웹취약성에 대한 언급이 있었다.감리를 받기 때문에, 특히 정부과제는 위 내용을 알고 개발을 해야한다. 개인적으로도 내용을 정리하고, 회사 내 팀원에게 알려주고자 자료를 준비하게 되었다. 항목필수 이해 내용시큐어코딩XSS/SQLi 방지, 인증/인가, 세션, 업로드 보안 등정부 프레임워크구조, egov 컴포넌트 사용법, MyBatis XML웹 취약성OWASP Top 10, 감사 항목 우선 대응 1. 시큐어 코딩“우리는 보안을 신경 쓰는 개발자인 척해야 한다.”필수로 알아야 할 것들:입력값 검증 (Input Validation):무조건 서버 측에서도 검증해. 클라이언트는 믿는 순간 해킹당함.예: XSS, SQL Injection 막으려면?HTML esc..