ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP 보안]escape
    프론트엔드/HTTP 2024. 12. 29. 12:38
    728x90

    [HTTP 보안]escape

     

    HTTP 보안 기법 중 하나인 **escape(이스케이프 처리)**는, 입력값에 포함된 특수 문자를 다른 문자나 표현으로 변환하여 웹 애플리케이션이 입력값을 안전하게 처리할 수 있도록 하는 보안 기술입니다. 주로 크로스 사이트 스크립팅(XSS), SQL 인젝션, 경로 조작 등과 같은 보안 취약점으로부터 보호하기 위해 사용됩니다.


    Escape의 목적

    • 특수 문자가 의도치 않은 명령으로 실행되지 않도록 방지.
    • 사용자 입력값을 안전하게 처리하여 애플리케이션과 데이터의 무결성을 유지.
    • 코드 실행, 데이터베이스 명령어 삽입, 경로 조작 등의 보안 위협을 차단.

    Escape 처리의 작동 방식

    특정 특수 문자나 태그를 해당 플랫폼이나 문맥에서 무해한 문자로 변환합니다.

    1. HTML Escape (XSS 방지)

    사용자가 입력한 데이터가 HTML 문맥에서 실행될 때, 태그를 특수 코드로 변환하여 스크립트가 실행되지 않도록 방지합니다.

    • 변환 예:
      • <  &lt;
      • >  &gt;
      • &  &amp;
      • "  &quot;
      • '  &#39;

    예:
    입력값 <script>alert('XSS')</script> → 출력값 &lt;script&gt;alert('XSS')&lt;/script&gt;


    2. JavaScript Escape

    JavaScript 문맥에서 동작하는 악성 코드 실행을 방지하기 위해 특수 문자를 변환합니다.

    • 변환 예:
      • "  \"
      • '  \'
      • \  \\

    3. SQL Escape (SQL 인젝션 방지)

    SQL 쿼리에 삽입될 데이터를 변환하여 악성 SQL 명령어가 실행되지 않도록 방지합니다.

    • 변환 예:
      • '  '' (SQL에서는 작은따옴표를 두 번 쓰면 특수 문자가 아니라 단순 문자열로 처리) 

    4. URL Escape (URL 인코딩)

    URL에 포함될 수 없는 문자나 특수 문자를 %로 시작하는 인코딩 방식으로 변환합니다.

    • 변환 예:
      • 공백( ) → %20
      • /  %2F
      • :  %3A

    예:
    입력값 hello world → 출력값 hello%20world


    Escape가 사용되는 주요 시점

    1. HTML 렌더링 시
      • 사용자 입력값을 HTML에 그대로 출력할 때 XSS 공격을 방지하기 위해 사용.
    2. JavaScript 변수 삽입 시
      • 사용자 입력값을 JavaScript 코드 내부에 삽입할 때 악성 코드 실행을 방지.
    3. SQL 쿼리 작성 시
      • 사용자가 입력한 값을 SQL 쿼리에 삽입할 때 SQL 인젝션을 방지.
    4. URL 처리 시
      • 쿼리 파라미터나 경로에 특수 문자를 안전하게 포함시키기 위해 사용.

    Escape 처리의 주요 장점

    • 간단하고 효과적: 애플리케이션 코드에서 적절한 문맥에 따라 처리만 하면 보안 강화를 기대할 수 있음.
    • 다양한 플랫폼 지원: 대부분의 프로그래밍 언어와 프레임워크에서 내장된 escape 함수를 제공.

    Escape의 한계

    • 문맥 의존적: 특정 문맥에 맞지 않는 이스케이프 처리는 예상치 못한 동작을 초래할 수 있음.
      • 예: HTML 이스케이프를 SQL 문맥에 사용하면 무의미.
    • 정확한 적용 필요: 적절한 이스케이프를 적용하지 않으면 보안이 뚫릴 수 있음.
    • 자동화 필요: 모든 입력값을 수동으로 이스케이프 처리하는 것은 어려움.

    결론

    Escape는 입력값의 특수 문자를 변환하여 웹 애플리케이션에서 발생할 수 있는 여러 보안 위협을 차단하는 중요한 기법입니다. 이를 적절히 사용하면 XSS, SQL 인젝션, 경로 조작과 같은 주요 취약점을 효과적으로 방지할 수 있습니다. 하지만 문맥에 맞는 이스케이프 처리가 필요하며, 다른 보안 기법(예: 입력 검증, 인증)과 병행하여 사용하는 것이 바람직합니다.

     

    728x90

    '프론트엔드 > HTTP' 카테고리의 다른 글

    [HTTP 보안]CORS  (0) 2024.12.29
    [HTTP 보안]CSP vs SOP  (0) 2024.12.29
    [HTTP 보안]sanitize  (0) 2024.12.29
    [HTTP 기본]curl  (1) 2024.12.28
    [HTTP 추가 프로토콜]WebSocket  (3) 2024.12.28
Designed by Tistory.