웹 개발

웹보안도구_01_0room 구축 계획

작성자 : Heehyeon Yoo|2025-12-01
# Blog# Security# Flask# Project# Plan

파이썬 공부용 웹보안도구 개발

파이썬을 공부하면서 느낀 건 뭔가를 만들며 배우는 게 가장 빠르다는 점이었다.
그래서 간단한 웹보안도구를 만들기로 했다.
목표는 단순하다. 공부가 목적이니 복잡한 전문 도구 대신 빠르게 확인할 수 있는 최소 기능을 제공하는 것이다.
그리고 그 과정에서 내가 보안 지식을 웹 서비스로 구현할 수 있음을 보여주는 것.

구축 범위 (MVP)

처음부터 욕심내지 않기로 했다.
MVP는 다음 두 기능만 확실히 완성하는 것으로 잡는다.

  1. 암호 보안 수준 검사기

    • 입력 즉시 강도를 확인할 수 있어야 한다.
    • 한국어 피드백과 시각적 표현(색/게이지)을 제공한다.
    • 길이 제한과 입력 검증은 기본으로 포함한다.
  2. 안심 링크(URL 확장기)

    • 단축 URL을 끝까지 추적해 최종 목적지 표시
    • 의심 키워드/패턴 검사로 기본 위험도 평가
    • 연결 실패에도 “분석 결과”는 제공

PRD 요약

목표

  • Flask 기반 웹 보안 도구 모음 구축
  • 입문자도 사용할 수 있는 간단한 UX
  • 보안 기본기(입력 검증/예외 처리)를 갖춘 서비스

대상 사용자

  • 일반 사용자: 의심 링크나 비밀번호를 빠르게 확인하고 싶은 사람
  • 보안/개발 입문자: 복잡한 툴 없이 웹에서 테스트하고 싶은 사람

핵심 기능

  • F-01 암호 보안 수준 검사기
  • F-02 안심 링크(URL 확장기)

완료 기준

  • MVP 2기능 정상 동작
  • 기본 UI/UX 흐름 완성
  • 예외 처리/문서화 완료

구현 로드맵

계획은 단계를 나누어 진행한다.

Phase 1 (MVP)

  • Flask 기반 기본 UI/라우팅 구축
  • 두 기능(암호 검사, URL 확장) 구현
  • 입력 검증 및 오류 메시지 정리

Phase 2

  • 해시 생성기
  • 보안 헤더 스캐너

Phase 3

  • EXIF 뷰어
  • VirusTotal 연동(안심 링크 2차 검증)

Phase 4

  • 사용자 대시보드(검사 이력)
  • REST API 공개

처음부터 모든 기능을 붙이기보다 작동하는 최소 단위부터 확장한다.

기술 구조

  • Backend: Python + Flask
  • Frontend: HTML/CSS + Jinja2 템플릿
  • 핵심 로직: requests, 정규표현식, 피싱 도메인 DB 대조

그리고 보안 도구답게 최소한의 안전 장치는 반드시 포함한다.

  • 입력값 검증 (화이트리스트)
  • XSS 방어 (템플릿 자동 이스케이프)
  • 민감 정보는 .env로 분리

결론

이 프로젝트는 학습용이다. 기능 욕심을 줄이고 정확한 문제 해결에 집중하는 게 핵심이다.
MVP를 빠르게 완성한 뒤 데이터와 피드백을 바탕으로 확장한다.