no image
[회고] 아직 추운 3월
2025년 3월 회고요약- [완료] 보안취약점 점검- [진행] 모바일 앱 개발보안취약점 점검올해도 역시나 공문이 날아왔다.보안 취약점 점검 및 조치^^사용자에 대한 요청사항을 빠르고 명확하게 처리하는 것도 중요하지만, 보안은 당연하면서도 가장 중요하다고해도 과언이 아닌 요소라고 생각된다.아무리 빠르고 정확한 프로그램을 만들어도 보안이 취약하여 사용자 정보가 쉽게 변조되거나 악용된다면 과연 그건 올바른 개발일까.. 좋은 개발일까 의문이 든다. 공문을 통해 받은 점검 사항은 까다롭다.상세 내용을 작성하긴 어렵지만, 간단하게 몇가지 요약해서 작성해봤다. 1. URL 파라미터 변조 - URL을 통한 파라미터 변조하여 인가 받지 않은 정보를 유출하거나 악용하는 것 ex) test.jsp?id=user1      ..
2025.04.01
no image
[회고] 정신없이 지나간 2월
2025년 2월 회고요약- [완료] SPF, DKIM, DMARC 적용- [진행] 운동 & 유튜브 & 블로그SPF, DKIM, DMARCSPF: 메일 발신자 정보의 위조를 탐지하도록 설계된 이메일 인증 방법이다. SPF 사용 시 도메인을 위조한 메일을 차단할 수 있다.DKIM: 위조 메일을 탐지하기 위한 이메일 인증 방법이다. 공개키 암호화 방식을 이용하여 메일 서명자를 인증하며, 무결성을 보장한다. 메일 발신 시 개인키로 서명한 값을 헤더에 추가하고, 메일 수신 시 DKIM 레코드에 등록된 공개키로 복호화하여 일치하지 않을 경우 차단한다.DMARC: 메일 인증, 정책 및 리포팅 관련 프로토콜이다. SPF, DKIM을 상호 비교하여 일치하지 않을 경우 차단하고 통계 리포트를 발송한다. 기존 사용하던 메일..
2025.03.26
no image
[Java] SQL Injection 및 XSS 방지를 위한 SecurityUtil 클래스
작년쯤 처음이자 마지막으로 SQL Injection 공격을 받은 후에 보안에 대한 중요성을 다시한번 느끼게 되었다.웹 애플리케이션을 개발할 때 SQL Injection과 XSS(크로스 사이트 스크립팅) 공격을 방지하는 것은 필수적인 보안 조치다.이번 글에서는 Java에서 이러한 보안 취약점을 방지하기 위한 SecurityUtil 클래스를 구현하고, 직접 JAR 파일을 라이브러리로 추가하는 방식까지 확인해보자.1. SecurityUtil 클래스아래 코드는 SQL Injection과 XSS 공격을 방지하기 위한 유틸리티 클래스다.import org.owasp.encoder.Encode;import java.util.regex.Pattern;public class SecurityUtil { // SQL ..
2025.03.19
no image
[CS] 해싱과 암호화의 차이점
이번 프로젝트에서 비밀번호 저장에 대한 로직을 구현하며 해싱(Hashing)과 암호화(Encryption)에 차이점에 대해서 공부해 보았다. 두 개념 모두 데이터를 변환하여 보호하는 기술이지만, 그 목적과 방식은 매우 다르다는 것을 알게 되었다.1. 해싱(Hashing)이란?해싱은 임의의 입력값을 고정된 길이의 문자열(해시 값)로 변환하는 과정이다.대표적인 해시 함수로는 SHA-256, MD5가 있다.특징단방향한 번 해싱된 값은 원래 데이터로 복원 불가능고정된 길이 출력입력 데이터의 크기과 관계없이 항상 일정한 길이의 해시값을 생성충돌 방지서로 다른 입력값이 같은 해시 값을 갖지 않음빠른 연산 속도데이터를 빠르게 변환할 수 있도록 최적화됨 사용 사례1. 비밀번호 저장2. 데이터 무결성 검증 (파일 다운로..
2025.03.17
no image
[CS] Base62 vs Base64 비교 및 용도별 적합성
Base62와 Base64는 둘 다 데이터를 문자 기반으로 변환하는 인코딩 방식이지만, 사용 목적과 특성이 다르다. 각각의 차이점과 적합한 용도를 비교해보자.1. Base62 vs Base64 개요특징Base62Base64사용 문자0-9 (10개) + A-Z (26개) + a-z (26개) = 62개0-9 (10개) + A-Z (26개) + a-z (26개) + +, / = 64개URL 안전성✅ (특수문자 없음)❌ (+, /가 포함되어 URL에서 인코딩 필요)공백 포함 여부❌ (패딩 없음)✅ (일반적으로 = 패딩 사용)인코딩 효율성덜 효율적 (62진법 변환 필요)더 효율적 (2^6 비트 단위 변환)변환 방식숫자(ID) → 62진법 변환3바이트(24비트) → 4개 6비트 단위로 변환사용 목적짧고 안전한 U..
2025.03.12
no image
[회고] 1월, 2025년은 처음이라
2025년 1월 회고요약- [완료] 연말정산 개정세법- [완료] 단축URL- [진행] DKIM, DMARC연말정산 개정세법우려하던 연말정산 개정세법에 따른 전산 프로그램 수정이 완료 되었다.이번 연말정산 개정된 사항은 많은 편이 아니라 보통인 편이라고 말씀해 주셨다.간략하게 요약해보면 아래와 같다. 1. 주택청약종합저축에 대한 소득공제 한도 상향2. 월세액 세액공제 소득기준과 한도 상향3. 결혼세액공제 신설4. 신용카드 등 소득공제가 소비증가분에 대한 추가공제 혜택 많은 부분이 개정 되었지만, 사회초년생인 나에게는 위 내역에 대한 부분이 가장 크게 와닿았다.누군가에게는 보너스, 누군가에게는 또다른 세금나에게 이번 연말정산은 배움이었다.많은 도움을 주신 사수분들께 감사하며 모두가 행복한 13월의 월급이 되..
2025.02.13
no image
[DNS] MX 레코드 확인 방법
도메인의 MX(메일 교환기) 레코드는 메일 서버의 주소를 나타내며, 이를 확인하는 것은 메일 시스템을 설정하거나 문제를 해결할 때 중요하다.이번 글에서는 Windows 환경에서 CMD(명령 프롬프트)를 사용해 특정 도메인의 MX 레코드를 확인하는 방법을 기술한다.1. 실행 창에서 CMD 실행하기1. [Win + R] 키를 눌러 실행창을 연다.2. '열기' 입력란에 cmd를 입력한 후 [확인] 버튼 클릭2. nslookup 명령어를 사용하여 MX 레코드 조회1. 명령 프롬프트 창에서 nslookup을 입력하고 Enter2. 다음 명령어를 입력하여 MX 레코드 조회 모드로 변경한다.set q=mx 3. 원하는 도메인을 입력한다.google.com 또는 naver.com 4. 결과를 확인한다. 아래와 같은 형..
2025.02.10
no image
[Java] 단축URL 구현하기 (네이버 me2.do 서비스 종료)
서론기존 홈페이지에서 무료로 사용하던 네이버 단축URL API가 피싱 사례의 급증, 도메인 시행사의 엄격한 피싱 대응 가이드로 인해, 2024년 12월 02일부로 me2.do 단축URL서비스를 종료했다.(공지 내용은 아래 링크 참조)https://developers.naver.com/notice/article/17062기존 생성된 단축URL의 연결은 2026년 2월 말까지 유지될 예정으로 자체적인 단축URL 서비스 개발이 필요했다. 본론1. 주요 기능1-1. 긴 URL을 단축된 형태로 변환1-2. 단축 URL이 원래 URL로 리다이렉트1-3. 단축 URL 저장 및 조회 (DB연동) 2. 구체적인 설계2-1. URL 단축 로직 - 서칭해보니 단축 URL은 보통 Base62 인코딩이나 Hashing 알고리즘..
2025.01.20
no image
[회고] 안녕~ 2024년 12월
2024년 12월 회고요약- [완료] 메일시스템 업그레이드- [완료] 오블완 챌린지- [진행] 연말정산 개정세법- [진행] 단축URL메일시스템 업그레이드12월 중순경 3달 넘게 진행하던 메일시스템 업그레이드가 무사히 마무리 되었다. 1. 오픈 전[10월] 가상 서버 구축, OS 설치, 하드웨어 구성(스토리지 및 OS 영역 파티션 구성), 방화벽 및 IP 설정, 애플리케이션 영역 설치 및 환경설정(WEB, WAS, DB, Nodejs) [11월] 인사DB(View 테이블 생성) 연동, NFS 마운트를 이용한 데이터 마이그레이션 방식 선정 및 선이관, 정책사항 반영(커스터마이징 영역), 타시스템 연동 API 생성 [12월] 증분치 데이터 이관 후 TO-BE 서버 오픈, DNS 작업(PTR, A, MX 레코드..
2025.01.08