ABOUT ME

-

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

    [HTTP 보안]sanitize


    HTTP 보안 기법 중 하나인 **sanitize(입력값 정화)**는, 사용자가 제공한 입력 데이터를 검증하고 정리하여 웹 애플리케이션이 이를 안전하게 처리할 수 있도록 하는 보안 기법입니다. 이는 주로 SQL 인젝션, 크로스 사이트 스크립팅(XSS), 경로 조작 등 다양한 공격 벡터로부터 애플리케이션을 보호하기 위해 사용됩니다.

    Sanitize의 주요 목적

    • 사용자 입력에 포함될 수 있는 악성 코드나 예상치 못한 데이터를 제거하거나 수정.
    • 애플리케이션에서 사용되는 데이터의 무결성과 보안을 유지.
    • 악성 입력값을 사용하여 시스템을 공격하는 것을 방지.

    Sanitize가 적용되는 주요 영역

    1. HTML 및 JavaScript (XSS 방지)
      • HTML 코드나 JavaScript 코드에서 악성 스크립트 실행을 방지하기 위해 <, >, & 등의 특수 문자를 이스케이프 처리합니다.
      • 예: <script>  &lt;script&gt;
    2. SQL 쿼리 (SQL 인젝션 방지)
      • SQL 명령어에 직접적으로 사용자의 입력값이 포함될 때, 입력값에 포함된 악성 SQL 명령어를 제거하거나 이스케이프 처리합니다.
      • 예: ' OR '1'='1 같은 입력값이 쿼리에 삽입되지 않도록 조치.
    3. 파일 및 경로 입력
      • 파일 업로드나 다운로드와 관련된 입력값에서 디렉터리 트래버설 공격(예: ../../etc/passwd)을 방지하기 위해 입력값을 정화.
    4. JSON 및 API 데이터
      • 외부에서 제공되는 JSON 데이터 또는 API 입력값을 검증하고 허용된 데이터만 처리.

    Sanitize의 주요 방법

    1. 화이트리스트 기반 검증
      • 입력값이 사전에 정의된 허용 규칙(예: 특정 문자 세트나 패턴)에 부합하는지 확인.
      • 예: 이메일 입력값 → 정규식을 사용해 이메일 포맷만 허용.
    2. 특수 문자 이스케이프(Escape)
      • 사용자가 제공한 입력값에서 악의적인 코드나 명령어를 무력화하기 위해 특수 문자를 이스케이프 처리.
      • 예: &, <, >  &amp;, &lt;, &gt;
    3. HTML 정화 라이브러리 사용
      • XSS 공격을 방지하기 위해 HTMLSanitizer와 같은 도구를 활용하여 입력값을 클린업.
      • 예: OWASP의 Java HTML Sanitizer.
    4. SQL 쿼리에서 Prepared Statements 사용
      • SQL 인젝션을 방지하기 위해 쿼리를 작성할 때 사용자 입력값을 동적으로 삽입하지 않고, Prepared Statements와 같은 안전한 쿼리 작성을 활용.

    Sanitize의 한계

    • 완벽한 보안 기법은 아니며, 다른 보안 기법(예: 입력 검증, 인증, 권한 관리 등)과 함께 사용해야 효과적입니다.
    • 잘못 설정된 규칙으로 인해 정당한 사용자 입력이 거부될 수 있음.

    결론

    Sanitize는 사용자 입력값을 검증하고 정리함으로써 웹 애플리케이션의 보안을 강화하는 핵심적인 보안 기법입니다. 특히 동적 웹 환경에서 SQL 인젝션, XSS와 같은 일반적인 웹 공격을 효과적으로 방지하는 데 중요한 역할을 합니다.

     

     

     

    728x90

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

    [HTTP 보안]CSP vs SOP  (0) 2024.12.29
    [HTTP 보안]escape  (0) 2024.12.29
    [HTTP 기본]curl  (1) 2024.12.28
    [HTTP 추가 프로토콜]WebSocket  (3) 2024.12.28
    [HTTP 추가 프로토콜]Server-Sent Events(SSE)  (0) 2024.12.28
Designed by Tistory.