• Feed
  • Explore
  • Ranking
/
/
    실무 아카이브

    이력서 등록 시 완료되지 않는 현상 – 특수문자(< >) 입력값의 HTML 오인 이슈

    특수문자(< >)가 HTML 태그로 오인되며 이력서 등록이 차단된 사례와 개선 조치 정리
    QAUX보안운영입력값검증
    김
    김무명
    2026.02.25
    ·
    5 min read

    1. 이슈 개요

    이력서 등록 시 “등록완료” 버튼을 눌러도 완료되지 않는 현상이 발생했다.

    확인 결과, 자기소개서 내용 내에 특수문자 < >가 포함되어 있었고,
    특정 조건에서 해당 값이 HTML 태그로 오인되면서 서버 저장이 차단되고 있었다.

    그 결과 사용자는 버튼을 눌러도 아무 반응이 없는 것처럼 인지하게 되었다.

    2. 원인 분석

    단순 텍스트 표현으로 아래와 같이 감싸져 있는 경우에는 문제가 발생하지 않는다.

    <나의 강점>

    그러나 이번 문의 건에서는 다음 문장이 확인되었다.

    <My story 장점과 단점>

    이 경우 < 뒤 첫 글자가 영문(I)으로 시작하면서 시스템이 이를 HTML 태그로 인식하였다.

    현재 서버는 다음 형식을 보안상 차단하고 있다.

    • <영문~>

    • </~>

    • <!~>

    즉, 닫힌 꺽쇠 괄호 안의 첫 글자가

    1. 영문

    2. /

    3. !

    으로 시작하는 경우 HTML 태그 또는 스크립트로 판단하여 저장을 막는 구조다.

    이는 XSS 공격 등 보안 이슈를 방지하기 위한 정책이다.

    3. 사용자 대응 사례

    문의가 들어온 사용자 건은 꺽쇠 괄호를 대괄호로 변경하여 처리하였다.

    <My story 경험>
    → [My story 경험]

    수정 후 정상 등록 완료를 확인하였다.

    4. 처리 방안 검토

    방법 (1)

    특수문자를 안전한 형태로 변환해 저장하고,
    출력 시 원래 문자로 복원하는 방식

    • 구조적으로 가장 이상적

    • 그러나 현재 운영 중인 여러 페이지 수정 필요

    • 과거 데이터 중 실제 HTML 태그 포함 사례 존재

    • 영향 범위가 넓어 현실적 진행 어려움

    방법 (2)

    특수문자를 변환하되 <영문~> 형태는 저장 시 자동 삭제

    • 구현은 비교적 단순

    • 그러나 사용자가 입력한 내용이 일부 사라짐

    • UX 측면에서 부정적

    방법 (3) (최종 적용)

    현재 서버 저장 차단 정책은 유지하되,
    입력 단계에서 해당 형식이 감지되면 알럿 메시지를 노출하도록 수정

    • 보안 정책 유지

    • 500 에러 발생 방지

    • 사용자 혼란 최소화

    • 기존 데이터 영향 없음

    5. 적용 내용

    알럿 발생 조건

    자소서 내용 내 아래 형식이 존재할 경우:

    • <영문~>

    • </~>

    • <!~>

    적용 안내 문구

    입력 내용에 < > (꺽쇠 괄호) 안에 글자가 포함된 형태
    (예: <p>, <body>, </~>)는 보안상 입력할 수 없습니다.
    해당 문자를 제거하거나, 소괄호 ( ) 또는 대괄호 [ ] 를 사용해 주세요.

    6. 결과 및 인사이트

    이번 이슈는 기능 오류가 아니라
    보안 정책에 의해 정상 차단된 상황이었다.

    그러나 사용자에게는
    “등록이 되지 않는다”는 경험으로 남았다.

    보안은 유지되고 있었지만,
    사전 안내가 없었던 것이 문제였다.

    이번 개선은 로직을 변경한 것이 아니라,
    보안 정책을 사용자에게 설명 가능하도록 만든 조치다.

    기능은 그대로였고,
    경험만 개선되었다.







    - 컬렉션 아티클